आपको अपने स्वयं के UI घटक "बनाने" की आवश्यकता है। आप दिनांक UI घटक का विस्तार करके ऐसा कर सकते हैं।
# 1 XML को अपने फॉर्म में जोड़ें
फ़ील्ड को फ़ील्डसेट में जोड़ें। इस उदाहरण में, हम जो घटक बना रहे हैं, उसे कहा जाता है time
। ध्यान दें कि आप template
निम्नलिखित XML में घोषणा कर सकते हैं । हालाँकि, यह वास्तव में कोई अच्छा काम नहीं करेगा क्योंकि यह एक्सएचटीएमएल टेम्प्लेट है जो नॉकआउट टेम्पलेट को लपेटेगा जो वास्तविक रेंडरिंग करता है। ऐसे अन्य नोड्स हैं जिन्हें आप सत्यापन की तरह यहां घोषित कर सकते हैं।
<field name="time_field">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="label" xsi:type="string" translate="true">Time</item>
<item name="dataType" xsi:type="string">text</item>
<item name="formElement" xsi:type="string">date</item>
<item name="dataScope" xsi:type="string">time_field</item>
<item name="component" xsi:type="string">Your_Module/js/form/element/time</item>
</item>
</argument>
</field>
# 2 UI घटक बनाएँ
// app/code/Your/Module/view/adminhtml/web/js/form/element/time.js
define([
'Magento_Ui/js/form/element/date'
], function(Date) {
'use strict';
return Date.extend({
defaults: {
options: {
showsDate: false,
showsTime: true,
timeOnly: true
},
elementTmpl: 'ui/form/element/date'
}
});
});
उपरोक्त जावास्क्रिप्ट पर कुछ नोट:
elementTmpl
इसकी आवश्यकता नही है। हालांकि, यदि आप टेम्पलेट (वर्तमान में module-ui/view/base/web/templates/form/element/date.html
) को अनुकूलित करना चाहते हैं, तो बस अपना स्वयं का टेम्पलेट बनाएं और इसे संदर्भ दें elementTmpl
।
इनपुट के लिए और विकल्प हैं। आप उनके बारे में अधिक जानकारी प्राप्त कर सकते हैं: http://trentrichardson.com/examples/timepicker/#tp-options । कोड में, यहाँ सभी चूक की एक सूची है:/lib/web/jquery/jquery-ui-timepicker-addon.js
अंतिम परिणाम:
- इस बिंदु पर, मुझे विश्वास नहीं है कि आपके यूआई घटक को उसी के समान घोषित करना संभव है
definitions.xml
। हालांकि, आप उन्हें न्यूनतम प्रयास के साथ बढ़ा सकते हैं । (और, अगर कोई रास्ता है, तो कृपया मुझे बताएं)।