एक दृष्टिकोण एल वह जगह है जहां सभी घटना बाध्यकारी होती है। आपको इसका उपयोग करने की आवश्यकता नहीं है, लेकिन यदि आप चाहते हैं कि आग की घटनाओं के कारण आपको एल पर अपना रेंडरिंग कार्य करना पड़े। एक विचार el एक DOM तत्व है, लेकिन इसमें पहले से मौजूद तत्व नहीं है। यह बनाया जाएगा यदि आप अपने वर्तमान पृष्ठ से एक नहीं खींचते हैं, लेकिन आपको इसे पृष्ठ में सम्मिलित करना होगा यदि आप कभी भी इसे कुछ भी देखना चाहते हैं।
एक उदाहरण: मेरा एक दृष्टिकोण है जो व्यक्तिगत वस्तुओं का निर्माण करता है
window.ItemView = Backbone.View.extend({
tagName: "li", //this defaults to div if you don't declare it.
template: _.template("<p><%= someModelKey %></p>"),
events: {
//this event will be attached to the model elements in
//the el of every view inserted by AppView below
"click": "someFunctionThatDoesSomething"
},
initialize: function () {
_.bindAll(this, "render");
this.render();
},
render: function () {
this.el.innerHTML = this.template(this.model.toJSON());
return this;
}
});
window.AppView = Backbone.View.extend({
el: $("#someElementID"), //Here we actually grab a pre-existing element
initialize: function () {
_.bindAll(this, "render");
this.render(new myModel());
},
render: function (item) {
var view = new ItemView({ model: item });
this.el.append(view.render().el);
}
});
पहला दृश्य सिर्फ सूची आइटम बनाता है और दूसरा दृश्य वास्तव में उन्हें पृष्ठ पर रखता है। मुझे लगता है कि बैकबोन.जेएस साइट पर टूडो उदाहरण में ऐसा ही होता है । मुझे लगता है कि सम्मेलन आपको सामग्री को एल में प्रस्तुत करना है। इसलिए एल आपकी टेम्प्लेट की गई सामग्री को रखने के लिए एक लैंडिंग जगह या एक कंटेनर के रूप में कार्य करता है। बैकबोन इसके घटनाओं को इसके अंदर मॉडल डेटा से बांधता है।
जब आप कोई दृश्य बनाते आप उपयोग कर चार तरह से एल हेरफेर कर सकते हैं el:
, tagName:
, className:
, और id:
। अगर इनमें से कोई भी आईडी या वर्ग के बिना एक div को अल चूक घोषित नहीं किया जाता है। यह इस बिंदु पर पृष्ठ से संबद्ध नहीं है। आप टैगनाम का उपयोग करके टैग को कुछ और में बदल सकते हैं (जैसे tagName: "li"
, आपको एक योग देगा <li></li>
)। आप इसी तरह की आईडी और क्लास सेट कर सकते हैं। फिर भी el आपके पेज का हिस्सा नहीं है। एल संपत्ति आपको एल ऑब्जेक्ट के बहुत ठीक अनाज हेरफेर करने की अनुमति देती है। ज्यादातर समय मैं एक का उपयोग करेंel: $("someElementInThePage")
जो वास्तव में आपके द्वारा वर्तमान पृष्ठ पर आपके विचार में एल करने के लिए किए गए सभी हेरफेर को बांधता है। अन्यथा यदि आप अपने दृश्य में किए गए सभी परिश्रम को उस पृष्ठ पर दिखाना चाहते हैं, तो आपको उस पृष्ठ को अपने दृश्य में कहीं और सम्मिलित करना होगा / जोड़ना होगा (संभवतः रेंडर में)। मैं एल के रूप में कंटेनर के बारे में सोचना पसंद करता हूं जो आपके सभी दृश्य में हेरफेर करता है।
el
बात से इत्तफाक रखता हूं ।