假设我有以下Backbone结构:
var BrowserView = Backbone.View.extend({
el: 'body',
events: {
click : "onClickEvent"
},
initialize: function () {
this.collections = [];
}
});
var FileBrowserView = BrowserView.extend({
el: '#file',
className: 'file-class',
events: {
click: "onFileClick",
mouseover: "onMouseOver"
},
initialize: function () {
this.constructor.__super__.initialize.apply(this);
}
});
我需要覆盖子视图中的tagName,id,className,el属性,并将子视图中的事件对象与父视图结合起来。 我怎么能这样做?
答案 0 :(得分:1)
对于 tagName , id , className 和 el 属性,您只需通过设置新值来覆盖它们就像你一样 对于事件,您可以使用与 initialize 方法相同的技巧,因为事件键可以是一个函数。
events: function(){
return _.extend({}, this.constructor.__super__.events, {
// list of events
});
}
请注意,这不适用于多个继承级别,因此,确切的公式为:
events: function(){
return _.extend({}, _.result(this.constructor.__super__, 'events'), {
// list of events
});
}