के लिए एक #each पाश से एक बटन कार्रवाई बाइंडिंग मैं एक बटन, एक #each
टेम्पलेट पाश के भीतर उत्पन्न प्राप्त करने के लिए, उसके संबंधित मॉडल के लिए अपने क्लिक कार्रवाई के लिए बाध्य नहीं कर पा रहे। यहाँ समस्या की एक त्वरित प्रदर्शन है ...Ember.js - अपने स्वयं के मॉडल
Ember.js
ऐप सेटअप:
window.Contacts = Ember.Application.create();
Contacts.Person = Ember.Object.extend({
first: '',
last: '',
save: function() {
// send updated information to server.
}
});
Contacts.contactsList = Ember.ArrayController.create({
content:[],
init: function() {
this.pushObject(Contacts.Person.create({
first:'Tom',
last:'Riddle'
}));
}
});
टेम्पलेट:
<script type="text/x-handlebars">
{{#each Contacts.contactsList}}
<li>
{{view Ember.TextField valueBinding="first" viewName="firstname"}}
{{view Ember.TextField valueBinding="last" viewName="lastname"}}
<button {{action "save" on="click"}}>Save</button>
</li>
{{/each}}
</script>
समस्या:
तो, यह सरल में विचार डेमो परिदृश्य यह है कि प्रत्येक रिकॉर्ड के लिए "सहेजें" बटन अपने स्वयं के मॉडल की स्थिति को बचाने के लिए एक क्रिया को ट्रिगर करेगा। हालांकि, सहेजें बटन पर क्लिक एक त्रुटि देता है:
Uncaught TypeError: Cannot call method 'call' of undefined
मेरे धारणा होगा कि निर्दिष्ट करने "बचाने" के रूप में बटन की कार्रवाई अपने मॉडल पर save
विधि के लिए यह बाँध होगा। हालांकि, यह मामला प्रतीत नहीं होता है। कुछ अन्य ऑब्जेक्ट क्लिक क्रियाओं को संभालने के लिए प्रतीत होता है, जिसमें एक "सेव" हैंडर अपरिभाषित है। क्या मुझसे कोई चूक हो रही है? मैं प्रत्येक लाइन आइटम के बटन को अपने मॉडल पर एक हैंडलर कैसे कॉल कर सकता हूं?
किसी भी मदद के लिए अग्रिम धन्यवाद!
दूसरा दृष्टिकोण के साथ एक पाश के अंदर उल्लेख कार्रवाई दृष्टिकोण का उपयोग मुझे मदद करता है! – Franco
वैश्विक लुकअप को बहिष्कृत किया गया है – Sisir