2012-02-22 13 views
7

बैकबोन का उपयोग करने के लिए नया और एक बहुत ही सरल एप्लिकेशन है। असल में Clients और ClientItems हैं। मेरे पास सभी ग्राहकों को दिखाने का एक दृश्य है और यदि आप किसी क्लाइंट पर क्लिक करते हैं तो आपको अपने क्लाइंट इटम्स पर ले जाया जाता है। इस क्लाइंट इटम्स व्यू पर जाकर केवल क्लाइंट व्यू को छिपाना चाहिए और क्लाइंट्स पर वापस जाना चाहिए क्लाइंट इटम्स को छिपाना चाहिए। अब, प्रत्येक दृश्य के लिए मेरे render() फ़ंक्शन में, यह संग्रह के माध्यम से जा रहा है और पृष्ठ पर सामग्री को गतिशील रूप से जोड़ रहा है। जब मैं दोनों के बीच आगे और पीछे जाता हूं (बैक बटन का उपयोग करके) मुझे वास्तव में फिर से प्रस्तुत करने की ज़रूरत नहीं है क्योंकि पेज में मौजूद सभी डेटा बस छिपे हुए हैं। यह तर्क कहां जाना चाहिए? अभी मेरे पास render() फ़ंक्शन में है लेकिन यह मैला लगता है, इसे संभालने का पसंदीदा तरीका क्या है?बैकबोन दिखाए गए दृश्यों को छुपा/छुपाएं सर्वोत्तम अभ्यास

उत्तर

11

हम कई आम आवेदन भर में इस्तेमाल किया समारोह के साथ एक वैश्विक चर App उपयोग कर रहे हैं:

var App = { 
    initialize : function() { 

     App.views = { 
      clientView : new ClientsView(), 
      clientItemView : new ClientsItemsView() 
     } 
    }, 

    showView: function(view){ 
     if(App.views.current != undefined){ 
      $(App.views.current.el).hide(); 
     } 
     App.views.current = view; 
     $(App.views.current.el).show(); 
    }, 

    ... 
} 

और फिर मैं आवेदन के अन्य भागों से इस App का उपयोग करें:

App.showView(App.views.clientView); 
+0

अच्छा लग रहा है। मैं देखता हूं कि आप 'प्रारंभिक' में बल्ले से सीधे दृश्य बनाते हैं। क्या यह एक आम बात है? क्या आप संग्रह के साथ ऐसा ही करेंगे? अब मुझे समझ में आता है क्योंकि मुझे कभी भी एक ही उदाहरण की आवश्यकता होगी, लेकिन मैं अभी भी सीख रहा हूं। – Brandon

+1

हम अभी विचारों को तुरंत बना रहे हैं, अन्य सभी चीजें जब आवश्यक हो तो बनाई जाती हैं। आप निश्चित रूप से आवश्यकतानुसार requ.js जोड़ सकते हैं, और init view जब आवश्यक हो। –

+0

हम App.views.current.show() का उपयोग कर रहे हैं ताकि दिखाने के संबंध में कोई अतिरिक्त तर्क वहां किया जा सके (अन्य ईवेंट श्रोताओं को बदल सकता है) –

5

IntoTheVoid के समाधान अच्छा है - दृश्यों को छिपाने/दिखाने के लिए एक ही जगह रखना अच्छा लगता है। लेकिन आप तर्क कैसे सक्रिय करते हैं?

मेरे अनुभव में, राउटर इसके लिए सबसे अच्छी जगह हैं। जब कोई मार्ग बदलता है और उपयुक्त फ़ंक्शन कहा जाता है, तो आपको सक्रिय, दृश्यमान दृश्य अपडेट करना चाहिए।

क्या होगा यदि आपको एक बार में दिखाई देने के लिए कई दृश्यों की आवश्यकता है? यदि आपके पास प्राथमिक दृश्य है जो मार्ग बदलते समय हमेशा बदलता है, और कई सहायक चिपचिपा विचारों, तो आपको चिंता करने की आवश्यकता नहीं है। लेकिन अगर यह उससे अधिक जटिल है, तो कॉम्बो व्यू बनाने के बारे में सोचें जो el नोड वाले सभी प्रासंगिक विचारों को अच्छी तरह से पैकेज करता है। इस तरह उपर्युक्त तर्क अभी भी काम करता है, और इस समय आपके विचारों को देखने के लिए तर्क के साथ आपके राउटर फ़ंक्शन तर्क से भरे नहीं हैं।

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