मैं एक backbone.js-application पर काम कर रहा हूं और उस बिंदु तक पहुंच गया हूं जहां मेरे पास मेरे आवेदन के प्रत्येक भाग का प्रतिनिधित्व करने वाले कई रूटर और विचार हैं। नीचे सरलीकृत राउटर उदाहरण में, मेरे पास दो स्थान हैं; account
& users
।backbone.js के साथ विचारों को साफ करना?
प्रत्येक स्थान में दोनों दृश्य अपनी सामग्री को पारस्परिक तत्व में प्रस्तुत करते हैं, जिसका नाम #appcontainer
है। मेरी सामान्य समझ में कहा गया है कि मुझे बाइंडिंग, डीओएम और व्हाट्नॉट में टकराव को रोकने के लिए किसी अन्य को लॉन्च करने से पहले remove
प्रत्येक दृश्य को सुनिश्चित करना चाहिए।
लेकिन जैसा कि मुझे यह सुनिश्चित करने के लिए पता नहीं है कि पहले से ही एक दृश्य बनाया गया है, मैं अपने राउटर या विचारों के अंदर से previousView.remove()
को स्पष्ट रूप से कॉल नहीं कर सकता।
क्या किसी भी अंतिम पिछले बाइंडिंग और डीओएम के तत्वों को साफ़ करने के लिए प्रत्येक दृश्य के निर्माता को $(this.el).empty()
जोड़ने के लिए पर्याप्त होगा?
यहां राउटर उदाहरण है?
var myRouter = Backbone.Router.extend({
routes: {
"account": "account",
"users": "users"
},
account: function() {
view = new AccountView({});
view.render();
},
users: function() {
view = new UserView({});
view.render();
}
});
हाय! आपके उत्तर के लिए धन्यवाद। क्या jQuery के '.remove()' -method को बैकबोन '.remove() 'दृश्यों से अलग करता है? – Industrial
बैकबोन का .remove() jquery's .remove() के लिए सिर्फ एक उपनाम है, इसलिए इन उद्देश्यों के लिए वे बराबर हैं। – MrGrigg
@MrGrigg ** क्या आप स्पष्टीकरण विधि कहां स्पष्टीकरण दे सकते हैं? ऐसा लगता है कि यह राउटर में ही जाता है, लेकिन मैं यह सुनिश्चित करना चाहता हूं ... ** _ मुझे वास्तव में इस कोड को देखना पसंद है और पहली नज़र में, ऐसा लगता है कि यह एप्लिकेशन_ को बनाने का एक अच्छा तरीका होगा। – Emerson