Creating a sass map value from within a mixin - saved globally -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 2 जवाब
क्या यह अपडेट करना संभव है मिक्सिन के भीतर से एक सास नक्शा में मान जिससे कि विश्व स्तर पर बदलाव बच जाएंगे?
उदाहरण
$ obj: (init: false) @mixin set ($ map) {@if map-get ($ obj, init)! = True {// mixin $ नक्शा से पहले नहीं बुलाया गया है: मानचित्र-सेट ($ नक्शा, init, true); } @else {// mixin को पहले बुलाया गया है}} .test {@ सेट ($ obj) शामिल है; // सही में init मान सेट करता है} .test-2 {@ शामिल करें ($ obj); // init मूल्य पहले से ही सही पर सेट है}
मुझे यकीन नहीं है अगर मैं समझता हूं कि आप क्या करने की कोशिश कर रहे हैं, लेकिन आपका कोड ठीक लग रहा है (हालांकि यह परीक्षण नहीं हुआ है), सिवाय इसके कि इसमें कोई नक्शा सेट फ़ंक्शन नहीं है, लेकिन आप एक या सिर्फ मानचित्र-मर्ज का उपयोग कर सकते हैं (यहां जांचें: )। मुझे उम्मीद है कि मदद करता है।
@ अद्यतन 1: मुझे लगता है कि मुझे अब आपका सवाल मिला है, आप मिश्रण के माध्यम से संदर्भ पास करना चाहते हैं, इसलिए यदि आपके पास कई मानचित्र हैं, तो आप जो आपको मिक्सिन में अपडेट करना चाहते हैं उसे भेज दें, मुझे नहीं लगता कि यह संभव है, क्योंकि कोई संदर्भ नहीं रखा गया है, अगर आपको उस चर को अपडेट करने की आवश्यकता है जिसे आपको सीधे लिंक करना है, उदाहरण के लिए, यह काम (परीक्षण) :
$ obj: (init: false); @ मिक्सीन सेट ($ नक्शा) {@if map_get ($ नक्शा, init)! = सच {$ obj: नक्शा-सेट ($ नक्शा, init, true)! वैश्विक; शरीर {पृष्ठभूमि रंग: # 000; }} @ केले {निकाय {पृष्ठभूमि रंग: # एफएफ 0000; }}} @ शामिल सेट ($ obj); @ शामिल सेट ($ obj);
लेकिन यदि आप $ obj के बजाय $ मानचित्र का संदर्भ देते हैं (इस लाइन में $ obj: map-set ($ map, init, true)! Global;)
, तो एक नया वैश्विक मानचित्र ($ नक्शा कहा जाता है), बनाया जाएगा। और हर बार जब आप मिक्सिन को फिर से बुलाते हैं, तो इसे आपके नक्शे को एक पैरामीटर के रूप में भेजा जाएगा।
@update 2: मुझे ऐसा करने का एक तरीका मिला, लेकिन आप को वैश्विक मानचित्र 'मैप' रखना होगा, और हर बार जब आप इस आदमी को अपडेट करेंगे, तो आप उस मैप का नाम भेज सकते हैं, जिसे आप पैरामीटर के रूप में अपडेट करना चाहते हैं, इसलिए मैं निम्नलिखित कोड के साथ आया, यह परीक्षण और ठीक काम कर रहा है): / P>
@ फ़ंक्शन मानचित्र-सेट ($ नक्शा, $ कुंजी, $ मान) {$ new: ($ key: $ value); @ राइट-मर्ज-मर्ज ($ नक्शा, $ नया); } $ नक्शे: (obj1: (init: false), obj2: (init: गलत),); @ मिक्सीन सेट ($ प्रोपे) {@if map_get (map_get ($ नक्शे, $ सहारा), init) = सच {$ obj: नक्शा-सेट (map_get ($ नक्शे, $ सहारा), init, सत्य); $ नक्शे: मानचित्र-सेट ($ नक्शे, $ सहारा, $ obj)! वैश्विक; शरीर {पृष्ठभूमि रंग: # 000; }} @ केले {निकाय {पृष्ठभूमि रंग: # एफएफ 0000; }}} @ शामिल सेट (obj1); // काला @ शामिल सेट (obj2); // काला @ शामिल सेट (obj1); // लाल @ शामिल शामिल (obj2); // लाल
स्रोत: खुद
Comments
Post a Comment