खोने वाले एकाधिक रीढ़ की हड्डी के दृश्यों के लिए एक कंटेनर के रूप में एक एकल div का उपयोग करके ठीक है, इसलिए मेरे पास एक नेविगेशन और डैशबोर्ड की अवधारणा है। मेरे राउटर में जब मैं नेविगेशन लिंक पर क्लिक करता हूं, तो मैं सक्रिय टैब सेट करने के लिए अपने डैशबोर्ड दृश्य पर कॉल कर रहा हूं।इवेंट बाइंडिंग
उदाहरण के लिए:
एनएवी
<a href="#" class="dashabord_tab" id="widgets">Widgets</a>
<a href="#" class="dashabord_tab" id="Foobars">Foobars</a>
dashboard_container.jst.tpl
<div id="nav"></div>
<div id="current_tab"></div>
DASHABORDVIEW
DashboardView = Backbone.View.extend({
template:JST.dashboard_container,
render: function(){
$(this.el).html(this.template());
},
activateWidgets: function(){
if(!(this.widgets_view)){
this.widgets_view = new WidgetsView();
this.widgets_view.render();
}
$(this.el).find("#current_tab").html(this.widgets_view.el);
},
activateFoobars: function(){
if(!(this.foobars_view)){
this.foobars_view = new FooBarsView();
this.foobars_view.render();
}
$(this.el).find("#current_tab").html(this.foobars_view.el);
}
});
समस्या:
+०१२३५१६४१०६१तो पहली बार जब मैं अपेक्षित रूप से टैब लोड को widgets_tab या foobar_tab पर स्विच करता हूं। हालांकि अगर मैं एक टैब पर स्विच करता हूं, तो इसे से बाहर निकलता हूं, फिर उस पर वापस स्विच करता हूं, मेरे दृश्य में सभी घटनाएं अब बाध्य नहीं होती हैं। क्लिक करना, hoevering, उदाहरण के लिए foobars_view अंदर विचारों में से कोई भी क्लिक करने योग्य, hoverable कर रहे हैं, आदि
अतीत में मैं बहुत की तरह बच्चे विचारों में से हर एक के लिए एक आवरण बनाने की है,:,
अतीत समाधान pita:
activateFoobars: function(){
$('.tab_wrapper').hide();
if($(this.el).find("#foobars_wrapper").length < 1){
$(this.el).append("<div class='tab_wrapper' id='foobars_wrapper'></div>");
this.foobars_view = new FooBarsView();
$(this.el).find("#foobars_wrapper").html(this.foobars_view.render().el);
}
$('#foobars_wrapper').show();
}
मैं इसे जिस तरह से मैं सिर्फ ऊपर से पता चला है बल्कि ऐसा नहीं चाहते हैं, और मैं वास्तव में सिर्फ एक active_tab div कि हमेशा खुला रहता है में दृश्य के एल डालने की विचार की तरह ... अगर मैं कर सकते हैं ' मैं जिस तरह से करना चाहता हूं, वैसे ही क्या मैं ऊपर दिखाया गया तरीका है? धन्यवाद!
कि आपके jsfiddle उदाहरण में अच्छा काम करता है ... किसी कारण से, यह अपने आवेदन में काम नहीं कर रहा। मुझे ध्यान रखना चाहिए कि widgetsview और foobarview दोनों के अपने बच्चे के विचार हैं। क्या इससे कुछ अन्तर पड़ता है? – jdkealy
@jdkealy: आपको शायद 'खाली' कॉल करने की आवश्यकता होगी क्योंकि 'खाली' कॉल ** ** ** ईवेंट बाइंडिंग बंद कर देगा। एक विधि ('rebind_all_events' कहें) उन विचारों पर जो आवश्यक 'प्रतिनिधि एवेन्ट्स' चीजों को सही ढंग से encapsulated रखने के लिए समझ में आता है। –
आह, मैं अब देखते हैं, जब मैं एक साधारण दृश्य में डाल दिया, यह काम करता है महान ... हाँ मेरे विचार बहुत गहरा मुझे लगता है कि जिस तरह से जाना श्रृंखला के नीचे सभी तरह delegateEvents कॉल करने के लिए। भविष्य के संदर्भ के बारे में जानना अच्छा है, लेकिन मुझे लगता है कि मैं शो/छुपा या ऑफसेट विधि के साथ जा रहा हूं। धन्यवाद! – jdkealy