मेरे पास Backbone.View
का एक सामान्य उप-वर्ग है जिसमें close
ईवेंट श्रोता है।उप वर्ग एक बैकबोन। उप वर्ग देखें और घटनाओं को बनाए रखें
var GenericView = Backbone.View.extend({
events : {
"click .close" : "close"
},
close : function() {
console.log("closing view");
}
});
मैं इस सामान्य वर्ग को उप-वर्ग बनाना चाहता हूं और कुछ नई घटनाएं जोड़ना चाहता हूं। हालांकि नीचे सुपर क्लास (उपरोक्त) ईवेंट ऑब्जेक्ट को ओवरराइट कर देगा। जैसे
var ImplementedView = new GenericView({
// setting this will stop 'close' in Super Class from triggering
events : {
"click .submit" : "submit"
}
});
मैं एक उप वर्ग कैसे बनाना चाहिए, इस मामले ImplementedView
में और घटनाओं को बनाए रखने?
मुझे कक्षा वर्ग के निर्माण के दौरान ईवेंट ऑब्जेक्ट को विस्तारित करके इसे प्राप्त करने का एक तरीका मिला है। हालांकि मुझे this.delegateEvents()
को फिर से ट्रिगर करने की आवश्यकता है, जिसे मैं अनुमान लगा रहा हूं वह अच्छा नहीं है। क्या कोई इस पर टिप्पणी कर सकता है?
var ImplementedView = new GenericView({
initialize : function (options) {
_.extend(this.events, {
"click .submit" : "submit"
});
// re-attach events
this.delegateEvents();
}
});
मैं गलत हो सकता हूं, लेकिन मुझे आपको कहीं भी उपclassing नहीं दिख रहा है ?? कार्यान्वित दृश्य केवल एक चर है जेनेरिक व्यू के उदाहरण का जिक्र है ... – PhD
आपको या तो स्पष्ट रूप से '_.extend (...)' का उपयोग करने की आवश्यकता है या दृश्यों की '.extend' विधि जैसी समान कार्यक्षमता है ... देखो एक सुराग पाने के लिए backbone.js के माध्यम से। लेकिन अगर मैं सही हूं तो यह प्रोटोटाइप श्रृंखला पर स्पष्ट विरासत की कमी के कारण है। 'This.delegateEvents() 'या' Backbone.View.prototype.delegateEvents.call (ईवेंट) को कॉल करना – PhD
पर जाने का तरीका प्रतीत होता है, मैं दस्तावेज़ों को देखूंगा। अपनी पहली टिप्पणी दोबारा: मैं नए ऑपरेटर को नहीं बुला रहा हूं, हालांकि यह बैकबोन को विस्तारित करने के माध्यम से उप-वर्गीकरण कर रहा था। मॉडल? – Ross