यूआई-घटकों का उपयोग करके फॉर्म फ़ील्ड को आसानी से कैसे बनाया जाए?


10

मैं अपने Magento 2 मॉड्यूल में एक फार्म क्षेत्र की इस ui- घटक परिभाषा है।

    <field name="name">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="dataType" xsi:type="string">text</item>
                <item name="label" xsi:type="string" translate="true">Some Label</item>
                <item name="formElement" xsi:type="string">input</item>
                <item name="source" xsi:type="string">something_here</item>
                <item name="sortOrder" xsi:type="number">10</item>
                <item name="dataScope" xsi:type="string">name</item>
                <item name="notice" xsi:type="string" translate="true">Enter something here</item>
                <item name="validation" xsi:type="array">
                    <item name="required-entry" xsi:type="boolean">true</item>
                </item>
            </item>
        </argument>
    </field>

और मैं इसे आसानी से बनाने की कोशिश कर रहा हूं। अक्षम नहीं है। बस पढ़ी हुई।
मैंने जोड़ने की कोशिश की:

<item name="readonly" xsi:type="boolean">true</item>  

विन्यास अनुभाग के लिए, लेकिन जाहिर है मैं असफल रहा।
मैं फ़ील्ड को आसानी से कैसे बना सकता हूं? क्या मैं मैदान को आसानी से बना सकता हूं?


"अक्षम" और "आसानी से" मापदंडों के बीच क्या अंतर है? मेरी राय में दोनों पैरामीटर समान तरीके से काम करते हैं।
सियारि उचुकलेबौ

1
मुझे जो पता है उससे, अक्षम का मतलब है कि फ़ील्ड को पोस्ट के माध्यम से नहीं भेजा जाता है और आसानी से भेजा जाता है। मेरी योजना कुछ जावास्क्रिप्ट के माध्यम से पठनीय क्षेत्र के मूल्य को संशोधित करने की है।
मेरियस

ज़रूर, लेकिन नियमित मैगेंटो फॉर्म में (ui नहीं) "पठनीय" विशेषता का अर्थ है html- विशेषता "अक्षम"। दूसरे तरीके से आपको एक कस्टम घटक या एक कस्टम स्क्रिप्ट का उपयोग करना चाहिए, ui- घटकों के लिए "readonly" विशेषता nonexists के बीच बने।
सियारि उचुकलेबौ

मैं अभी आपके उत्तर के साथ रहना चाहता हूं। मुझे उम्मीद है कि मुझे वास्तव में भविष्य में एक क्षेत्र को अक्षम बनाने की आवश्यकता नहीं है।
मेरियस

इनपुट के रूप में फ़ॉर्मेमेंट को छोड़ दें और इस तरह से टेक्स्ट एलिमेंट जोड़ें। जैसे कि आइटम का नाम = "एलिमेंट", एक्सटी: टाइप = "स्ट्रिंग"> यूआई / फॉर्म / एलिमेंट / टेक्स्ट </ आइटम> देखें: magento.stackexcc.com/a/296735/14271
Magento_Newbie

जवाबों:


18

disabledपैरामीटर को इस तरह से जोड़ने की कोशिश करें:

<field name="is_active">
    <argument name="data" xsi:type="array">
        <item name="config" xsi:type="array">
            <item name="label" xsi:type="string">Status</item>
            <item name="dataType" xsi:type="string">number</item>
            <item name="formElement" xsi:type="string">checkbox</item>
            <item name="source" xsi:type="string">vendor_rules_rule_form.vendor_rules_rule_form_data_source.is_active</item>
            <item name="prefer" xsi:type="string">toggle</item>
            <item name="disabled" xsi:type="boolean">true</item>
            <item name="valueMap" xsi:type="array">
                <item name="true" xsi:type="string">1</item>
                <item name="false" xsi:type="string">0</item>
            </item>
            <item name="sortOrder" xsi:type="number">12</item>
        </item>
    </argument>
</field>

परिणाम readonlyनियमित रूप तत्व के लिए पैरामीटर के समान होना चाहिए :

परिणाम


1
मैं यहाँ हैरान हूँ। यह काम करता है, लेकिन यह मुझे गलत लगता है। यदि फ़ील्ड अक्षम है तो POST के माध्यम से कैसे भेजा जाता है? वैसे भी, यह एक अलग सवाल है। मैं अभी के लिए इसे ले जाऊँगा।
मेरियस

5
@ मार्स यह सबसे अधिक संभावना है क्योंकि जब बैकएंड से एक फॉर्म सबमिट किया जाता है, तो वह वास्तविक फॉर्म नहीं होता है जिसे सबमिट किया जाता है, लेकिन छिपे हुए फ़ील्ड के साथ एक नया फॉर्म जो तब बनता है जब आप सहेजें पर क्लिक करते हैं। प्रपत्र आपके UI घटक XML-फ़ाइल में फ़ील्ड के अनुसार बनाया जाता है और जिन फ़ील्ड के साथ चिह्नित किया जाता है data-form-part। देख लो module-ui/view/base/web/js/form/form.js::initConfig(), validate()और submit()। इसके अलावा को देखो lib/mage/utils/misc.js::submit()। ये संयुक्त शरीर के अंत में एक नया रूप जोड़ते हैं जो वास्तव में प्रस्तुत किया जाता है।
गेल बर्कर्स

@GielBerkers। मैंने यह सवाल पूछने के बाद कुछ शोध किया है और मैं उसी निष्कर्ष पर पहुंचा हूं, जैसा आपने समझाया था। तुम सही हो। प्रस्तुत डेटा एक फॉर्म से नहीं आता है।
मारियस

मुझे भी मुद्दे की तरह ही है .. मैं कॉन्फ़िगर करने योग्य उत्पाद के लिए मूल्य क्षेत्र को सक्षम करना चाहता हूं .. यहां मैंने लिंक
गोपाल काचा

@ मार्स, disabledकेवल एडिट फॉर्म में फील्ड कैसे बनाएं, नए रूप में नहीं?
विनय माहेश्वरी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.