आपके पास संदर्भ समस्या है। this
आप रेफर कर रहे हैं जिसमें $el
शामिल नहीं है जिसे आप ढूंढ रहे हैं। आप इसे self
वेरिएबल घोषित करके ठीक कर सकते हैं जो उचित this
पर इंगित करता है। निम्नलिखित कोड आपके लिए काम करना चाहिए।
render: function() {
var self = this; //Added this line to declare variable (self) that point to 'this'
this.$el.empty();
_.each(this._views, function(sub_view) {
self.$el.append(sub_view.render().el); //Used 'self' here instead 'this'
});
साइड नोट: यदि आप रीढ़ झुकाव रहे हैं के रूप में भी आप दस्तावेज़ पुनर्प्रवाहित के साथ एक बहुत commong जावास्क्रिप्ट समस्या के बारे में पता होना चाहिए। आप संग्रह में प्रत्येक मॉडल के लिए एक दृश्य प्रस्तुत कर रहे हैं। यह प्रदर्शन मुद्दों और विशेष रूप से पुराने कंप्यूटर और मोबाइल उपकरणों पर जा सकता है। आप container
में सबकुछ प्रस्तुत करके और प्रत्येक बार डोम को अपडेट करने के बजाय इसे एक बार जोड़कर अपने कोड को अनुकूलित कर सकते हैं। यहां एक उदाहरण दिया गया है:
render: function() {
this.$el.empty();
var container = document.createDocumentFragment();
_.each(this._views, function(sub_view) {
container.appendChild(sub_view.render().el)
});
this.$el.append(container);
}
स्रोत
2013-05-18 19:46:08
बिल्कुल सही काम करता है! बहुत बहुत धन्यवाद और मैं दस्तावेज़ प्रवाह मुद्दे को ध्यान में रखूंगा। वास्तव में बहुत उपयोगी जानकारी! –