Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主干:mixin事件从扩展视图扩展_Javascript_Backbone.js_View_Mixins - Fatal编程技术网

Javascript 主干:mixin事件从扩展视图扩展

Javascript 主干: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

我有很多视图使用的mixin

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)