2011-09-01 9 views
12

पृष्ठभूमिबैकबोन.जेएस आईडी का उपयोग किए बिना डीओएम तत्वों का ट्रैक कैसे रखता है?

मैं कुछ समय और इसका एक पहलू है कि खुश मुझे यह मेरे लिए कैसे सरल करने के लिए के रूप में'दृश्य', सार और पुन: उपयोग डोम तत्वों की अनुमति देता है के लिए Backbone.js उपयोग किया गया है। मैंने कुछ एनोटेटेड स्रोतों को पढ़ने की कोशिश की है और JQuery से परिचित हूं, लेकिन इस बारे में बहुत कम जानकारी है कि डीओएम गहरे स्तर पर कैसे काम करता है।

प्रश्न

कैसे उन्हें एक id, वर्ग या अन्य विशेषता बताए विचारों को Backbone.JS टाई डोम तत्वों करता है?

अर्थात

<ul> 
    <li>Item one</li> 
    <li>Item two</li> 
    <li>Item three</li> 
</ul> 

मैं प्यार करता हूँ बैकबोन यह करता है और पता करने के लिए कैसे यह यह करता है चाहते हैं कि!

उत्तर

13

जावास्क्रिप्ट में, एक चर एक संदर्भ (यानी कार्यक्रम संबंधी बात है कि "को संदर्भित करता है") डोम, जो सिर्फ एक जावास्क्रिप्ट वस्तु है के कुछ तत्व को रख सकते हैं। बैकबोन सुनिश्चित करता है कि एक दृश्य के लिए, कम से कम वह तत्व मौजूद है। उदाहरण के लिए, jQuery, में जब आप तीसरे आइटम के लिए अपनी सूची में देखें:

var item3 = $('ul li').eq(2); 

(यह एक शून्य ऑफसेट सूची है, पहला आइटम सूचकांक 2 में तीसरे सूचकांक 0 पर है,), अब आप कर सकते हैं साधारण jQuery डोम manipulators साथ "आइटम तीन दशमलव एक चार एक से पांच नौ" के लिए "आइटम तीन" से पाठ बदलने:

item3.text("Item three point one four one five nine"); 

हालांकि कि सूची आइटम किसी विशेष वर्ग या आईडी गुण नहीं है।

एक रीढ़ की हड्डी के दृश्य el फ़ील्ड में मूल तत्व का निरंतर संदर्भ होता है जिसमें वह दृश्य अपनी सभी सामग्री प्रस्तुत करता है। बैकबोन एक सामान्य संदर्भ हैंडलर को उस निरंतर संदर्भ में संलग्न करने के लिए jQuery delegate ईवेंट मैनेजर का उपयोग करता है। जब भी कोई घटना उस डीओएम तत्व या उसके किसी भी बच्चे के भीतर होती है, तो प्रतिनिधि घटना को कैप्चर करता है, जिसमें विशिष्ट डीओएम ऑब्जेक्ट के संदर्भ में माता-पिता el के भीतर ईवेंट बनाया गया है, और रीढ़ की हड्डी कुछ उचित मानक jQuery जादू का उपयोग करने के लिए इसका उपयोग करती है दृश्य में एक घटना हैंडलर।

यह वास्तव में बहुत अच्छी चीजें है।

मुझे यह जोड़ना चाहिए कि el संदर्भ की "निरंतर" -ness, er, तर्कसंगत है। यदि आप किसी मौजूदा HTML तत्व पर व्यू तर्क संलग्न कर रहे हैं, तो आप दृश्य के initialize() में el को एक बार असाइन करते हैं। जावास्क्रिप्ट निरंतरता की किसी भी धारणा को लागू नहीं करता है, लेकिन आपको केवल el (यानी this.el = something()) को सीधे असाइन करना चाहिए यदि आप सुनिश्चित हैं कि आप जानते हैं कि आप क्या कर रहे हैं।

+0

इसे अपने उत्तर में संपादित करें के रूप में जोड़ें। – Mrchief

+0

यह शानदार है, बहुत बहुत धन्यवाद! – cmpolis

संबंधित मुद्दे