मैं नवीनतम संस्करण (2.3.0) के प्रलेखन को पढ़ रहा था और यह कह रहा है कि एप्लिकेशन क्षेत्र अब बहिष्कृत हैं।MarionetteJS: अनुप्रयोग क्षेत्र बनाम लेआउट
आवेदन क्षेत्र
चेतावनी: पदावनत इस सुविधा को अनुचित है। अपने दृश्य पेड़ की जड़ के रूप में एप्लिकेशन का उपयोग करने के बजाय, आपको लेआउट व्यू का उपयोग करना चाहिए। अपने लेआउट व्यू को पूरे दस्तावेज़ में देखने के लिए, आप को अपने एल 'बॉडी' पर सेट कर सकते हैं। यह कुछ निम्न जैसा दिख सकता है: var रूटव्यू = Marionette.LayoutView.extend ({el: 'body'});
डेविड सुल्क की पुस्तक बैकबोन मैरियनेट सहित अधिकांश ट्यूटोरियल में: एक सज्जन परिचय यह अनुप्रयोग में क्षेत्रों को जोड़ने के लिए निम्न कोड स्निपेट का उपयोग करता है।
नीचे दिए गए उदाहरण के बजाय, जो addRegions का उपयोग करता है, इसके बजाय मुझे क्या करना चाहिए?
अर्थात
var ContactManager = new Marionette.Application({});
ContactManager.addRegions({
mainRegion: "#main-region"
});
var ContactView = Marionette.ItemView.extend({
template: "#whatever",
ui: {
button: ".button".
},
events: {
"click @ui.button": "click",
},
click: function() {
console.log("do stuff here...");
}
});
ContactManager.on("start", function() {
var contactView = new ContactView({
model: someModel
});
ContactManager.mainRegion.show(contactView);
});
क्या app.start() से पहले लेआउट व्यू प्रस्तुत किया जा सकता है या इसे ऑनस्टार्ट हैंडलर के अंदर बुलाया जाना चाहिए? – Abe
लेआउट व्यू को प्रस्तुत करना तुल्यकालिक है, इसलिए आपको यह सुनिश्चित करना होगा कि लेआउट को आपके क्षेत्रों में दृश्य दिखाना पड़े। इसके अलावा, जब आप चाहें तो आप इसे कर सकते हैं। यह भी ध्यान रखें कि आप उन तत्वों के आधार पर क्षेत्रों को परिभाषित कर सकते हैं जो पहले से ही डोम में हैं, क्या आप फ्लाई पर विचार दिखाने के लिए क्षेत्र बनाना चाहते हैं। – Trace
दरअसल, आप कैसे जानते हैं कि डीओएम को प्रस्तुत दृश्य संलग्न करें? आइए मान लें कि मेरे पास #menu और #content तत्वों के साथ एक टेम्पलेट है, लेकिन मैं वास्तव में एचटीएमएल को इस प्रस्तुत लेआउट व्यू को कैसे संलग्न करता हूं? – Abe