जब मैं उस प्रॉपर्टी को प्रतिपादित करता हूं तो मेरा टेम्पलेट अपडेट क्यों नहीं होता है? documentation बताता है कि {{each}}
बाइंडिंग-जागरूक है, लेकिन स्पष्ट रूप से ऐसा कुछ है जिसे मुझे पता नहीं है।एम्बर, मेरा टेम्पलेट संपत्ति परिवर्तन पर अपडेट नहीं होता
हैंडलबार्स में सबकुछ की तरह, {{#each}} सहायक बाइंडिंग-जागरूक है। यदि आपका एप्लिकेशन सरणी में एक नया आइटम जोड़ता है, या किसी आइटम को हटा देता है, DOM को कोई भी कोड लिखने के बिना अपडेट किया जाएगा।
यहाँ मेरी नियंत्रक
App.MaintemplateController = Ember.Controller.extend({
alist: ['foo', "bar"],
actions : {
addel: function(){
this.alist.push('xpto');
console.log(this.alist);
}
}
});
मेरे टेम्पलेट में मैं निम्नलिखित कोड है है।
{{#each alist}}
<li>{{.}}</li>
{{/each}}
<button {{action 'addel'}}>Add element</button>
डेटा ठीक से प्रदान की गई है, और जब मैं बटन पर क्लिक करें यह संपत्ति के लिए तत्वों संलग्न करता है, लेकिन टेम्पलेट ताज़ा नहीं है। क्यूं कर? मैं इसे अपने डेटा के साथ सिंक में कैसे रखूं?
यह मेरे प्रश्न का उत्तर देता है और इस समस्या को हल करता है। हालांकि मैं उम्मीद कर रहा था कि एक ऐसा समाधान था जो डेटा-प्रकार के बावजूद काम करेगा। यदि मैं एक साधारण सरणी के बजाय एक जटिल वस्तु है और इसके कुछ आंतरिक गुणों को अद्यतन करने के लिए असाइनमेंट का उपयोग करने की आवश्यकता है तो मैं क्या करूँ? – Pico
@ पिको, खुशी है कि मैं मदद कर सकता हूं। अच्छी तरह से एक अधिक जटिल वस्तु के मामले में आप ऑब्जेक्ट पेड़ को नीचे चलाते हैं और इसकी गुणों को सेट करते हैं, जैसे: 'this.get ('complexObject.childOne.childTwo')। सेट ('name', 'foo'); 'समझ में आता है? – intuitivepixel
हां, धन्यवाद। – Pico