Javascript 主干:mixin事件从扩展视图扩展
我有很多视图使用的mixinJavascript 主干:mixin事件从扩展视图扩展,javascript,backbone.js,view,mixins,Javascript,Backbone.js,View,Mixins,我有很多视图使用的mixin var EditTableRowMixin = { events: { "click .save": "save", "click .abort": "abort" }, /* common methods for table rows */ }; 现在我有了一个新的视图,它需要比这个mixin更多的事件: var SpecialRowEditView = Backbone.View.extend({ tagName
var EditTableRowMixin = {
events: {
"click .save": "save",
"click .abort": "abort"
},
/* common methods for table rows */
};
现在我有了一个新的视图,它需要比这个mixin更多的事件:
var SpecialRowEditView = Backbone.View.extend({
tagName : "div",
events: {
"click .remove" : "remove",
"click .add" : "add"
},
initialize: function(){
/*Do things */
},
...
...
...
});
_.extend(SpecialRowEditView.prototype, EditTableRowMixin);
return SpecialRowEditView;
我尝试将这些事件添加到this.events(即mixins事件)。它可以工作,但会使用mixin中断所有其他视图,因为出于某种原因,这些视图现在会查找save和abort函数
我怎样才能将mixin的事件扩展为仅此视图所需的事件
var more_events = {
events: {
"click .remove" : "remove",
"click .add" : "add"
}
},
_.extend(SpecialRowEditView.prototype, _.merge(EditTableRowMixin, more_events));
您的事件被mixin覆盖。你需要把它们合并在一起。
这里我用下划线代替 您可以像这样尝试
specialrowditview=specialrowditview.extend(EditTableRowMixin)