এটি একাধিক উত্তর সহ একটি পুরানো প্রশ্ন যা কাজ করে, তবে আমি Magento কী সরবরাহকারী উপাদানগুলির প্রযোজনীয়তা ছাড়াই (2.1.0 হিসাবে) যা সরবরাহ করে তা ব্যবহার করে একটি সমাধান আবিষ্কার করেছি। যেহেতু একাধিক প্রশ্নগুলি নকল হিসাবে চিহ্নিত হয়েছে এবং এখানে নির্দেশিত হয়েছে আমি এই বিকল্পটিতে কিছু তথ্য সরবরাহ করা সুবিধাজনক হবে বলে ভেবেছিলাম।
সমস্ত ফর্ম উপাদান ইউআই উপাদানগুলি প্রসারিত করে Magento_Ui/js/form/element/abstract.js
এমন উপাদানগুলির switcherConfig
জন্য যেমন লুকানো / দেখানোর পাশাপাশি অন্যান্য ক্রিয়াগুলির জন্য একটি সেটিং উপলব্ধ থাকে। switcher
কম্পোনেন্ট পাওয়া যাবে Magento_Ui / JS / ফর্ম / পরিবর্তনকারী জানতে আগ্রহী জন্য। বিক্রয়_rule_form.xML এবং ক্যাটালগ_রুলে_ফর্ম.এক্সএমএল এর ব্যবহারের উদাহরণগুলি আপনি খুঁজে পেতে পারেন । অবশ্যই যদি আপনি ইতিমধ্যে নিজের কাস্টম উপাদান ব্যবহার করছেন তবে আপনি এখনও অবধি এটি ব্যবহার করতে পারবেন যতক্ষণ না আপনার উপাদানটি অবশেষে প্রসারিত হয় abstract
যা প্রশ্নের প্রদত্ত উদাহরণ কোডের ভিত্তিতে কেস হিসাবে উপস্থিত বলে মনে হয়।
মূল প্রশ্নের উত্তর দেওয়ার জন্য এখন আরও একটি নির্দিষ্ট উদাহরণের জন্য।
নিয়ন্ত্রণের Namespace/ModuleName/view/adminhtml/ui_component/your_entity_form.xml
ক্ষেত্রে ক্ষেত্রের মধ্যে আপনাকে কেবল নিম্নলিখিতটি যুক্ত করতে হবে settings
(অর্থাত্ ক্ষেত্রটি কোন ক্ষেত্রটি লুকিয়ে / দৃশ্যমান) তা নির্ধারণ করে। আপনার উদাহরণে এটি হবে field1
।
<field name="field1">
<argument name="data" xsi:type="array">
...
</argument>
<settings>
<switcherConfig>
<rules>
<rule name="0">
<value>2</value>
<actions>
<action name="0">
<target>your_entity_form.your_entity_form.entity_information.field2Depend1</target>
<callback>show</callback>
</action>
<action name="1">
<target>your_entity_form.your_entity_form.entity_information.field3Depend1</target>
<callback>hide</callback>
</action>
</actions>
</rule>
<rule name="1">
<value>3</value>
<actions>
<action name="0">
<target>your_entity_form.your_entity_form.entity_information.field2Depend1</target>
<callback>hide</callback>
</action>
<action name="1">
<target>your_entity_form.your_entity_form.entity_information.field3Depend1</target>
<callback>show</callback>
</action>
</actions>
</rule>
</rules>
<enabled>true</enabled>
</switcherConfig>
</settings>
</field>
একে একে একটু ভেঙে ফেলি। switcher
উপাদানের একটি অ্যারের রয়েছে rules
যা আমরা এখানে কি আউট তৈরি করছি হয়। প্রত্যেকের <rule>
একটি নাম রয়েছে যা এই উদাহরণে একটি সংখ্যা। এই নামটি এই আইটেমটির জন্য অ্যারে কী / সূচক। আমরা সংখ্যাগুলি অ্যারে সূচক হিসাবে ব্যবহার করছি। স্ট্রিংগুলিতেও কাজ করা উচিত তবে আমি এই তত্ত্বটি পরীক্ষা করি নি ।
আপডেট - @ ক্রিসটফেরফেরিবোউফ মন্তব্য হিসাবে মন্তব্য করেছেন, এখানে কাজ না করার জন্য স্ট্রিং। এগুলি অ্যারে এবং 0
স্ট্রিং বা 1 দিয়ে নয়, শুরু হওয়া উচিত ।
প্রতিটি ভিতরে rule
আমরা দুটি যুক্তি পাস।
value
- এটি হ'ল এর মান field1
যার actions
নীচে সংজ্ঞায়িত ট্রিগার করা উচিত ।
actions
- এখানে আমাদের আরেকটি অ্যারে আছে। এই নিয়মের শর্ত পূরণ করার সময় এগুলি ট্রিগার করা হবে। আবার, প্রত্যেকের action
নাম সেই আইটেমটির অ্যারে সূচক / কী is
এখন প্রত্যেকের action
পাশাপাশি দুটি তর্ক রয়েছে (3rdচ্ছিক তৃতীয় সহ)।
target
- এই উপাদানটির মাধ্যমে আপনি যে কৌশলটি পরিচালনা করতে চান এটি এটি। আপনি কীভাবে ui_comp घटक উপাদান নামগুলি ম্যাজেন্টোতে রচিত তা সম্পর্কে আপনি যদি জানেন না তবে আপনি অ্যালান স্টর্মের নিবন্ধটি পরীক্ষা করে দেখতে পারেন । এটি মূলত {component_name}.{component_name}.{fieldset_name}.{field_name}
এই উদাহরণের মতো কিছু ।
callback
- এখানে উল্লিখিত ব্যবস্থা গ্রহণ করা হবে target
। এই কলব্যাকটি এমন একটি ফাংশন হওয়া উচিত যা লক্ষ্যমাত্রার উপাদানটিতে উপলব্ধ। আমাদের উদাহরণ ব্যবহার করে hide
এবং show
। আপনি এখানে উপলব্ধ কার্যকারিতাটি প্রসারিত করতে শুরু করতে পারেন। catalog_rule_form.xml
উদাহরণস্বরূপ আমি আগেও ব্যবহারসমূহ উল্লিখিত setValidation
যদি আপনি একটি ভিন্ন উদাহরণ দেখতে ইচ্ছুক।
- এছাড়াও আপনি যোগ করতে পারেন
<params>
কোন action
যে তাদের জন্য কল। আপনি catalog_rule_form.xml
উদাহরণে এটি দেখতেও পারেন ।
অবশেষে শেষ আইটেমটি switcherConfig
হ'ল <enabled>true</enabled>
। এটি বেশ সোজা এগিয়ে হওয়া উচিত, এটি সবেচার কার্যকারিতা সক্ষম / অক্ষম করার জন্য বুলিয়ান
এবং আমরা সম্পন্ন করেছি। সুতরাং আপনি কি দেখতে পাবেন উপরের উদাহরণে ব্যবহার ক্ষেত্র field2Depend1
যদি আপনি মান একটি বিকল্প নির্বাচন করুন প্রদর্শিত 2
উপর field1
, এবং field3Depend1
প্রদর্শিত যদি মান একটি বিকল্প নির্বাচন করুন 3
।
আমি এই উদাহরণটি কেবলমাত্র hide
এবং show
প্রয়োজনীয় ক্ষেত্রে ব্যবহার করে পরীক্ষা করেছি এবং এটি বৈধতার জন্য অ্যাকাউন্টে দৃশ্যমানতা গ্রহণ করবে বলে মনে হয় না। অন্য কথায়, যদি field2Depend1
প্রয়োজন হয় তবে এটি দৃশ্যমান হলেই প্রয়োজন হবে। এটির জন্য আরও কনফিগারেশন প্রয়োজন নেই।
আশা করি বাক্সের বাইরে থাকা আরও সলিউশন খুঁজছেন এমন কাউকে এটির জন্য কিছু সহায়তা প্রদান করা হয়েছে।