我有一個Backbone.View
的通用子類,它有一個close
事件偵聽器。Subclass a Backbone.View子類和保留事件
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();
}
});
我可能是錯的,但我沒有看到你在任何地方繼承? ImplementedView只是一個引用GenericView實例的變量... – PhD
您可能需要顯式使用'_.extend(...)'或者具有類似於視圖的'.extend'方法的功能... look通過backbone.js獲得線索。但是如果我是對的,那是因爲在原型鏈上缺乏顯式繼承。調用'this.delegateEvents()'或'Backbone.View.prototype.delegateEvents.call(events)'似乎是要走的路了 – PhD
我會查看文檔。重新您的第一個評論:我沒有調用新的運營商,我雖然這是通過擴展Backbone.Model繼承? – Ross