Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
在backbone.js中扩展视图时添加事件处理程序?_Backbone.js - Fatal编程技术网

在backbone.js中扩展视图时添加事件处理程序?

在backbone.js中扩展视图时添加事件处理程序?,backbone.js,Backbone.js,我是backbone.js n00b,在理解如何扩展视图时遇到困难。我有一个基本的“项目”模型和视图。我想将模型和视图都扩展为“specificItem”。有没有办法在扩展视图中添加事件而不是全部替换它们 项目视图: var itemView = Backbone.View.extend({ ... events: { "click" : "foo" , "dblclick div": "bar" } ... }); var specificIt

我是backbone.js n00b,在理解如何扩展视图时遇到困难。我有一个基本的“项目”模型和视图。我想将模型和视图都扩展为“specificItem”。有没有办法在扩展视图中添加事件而不是全部替换它们

项目视图:

var itemView = Backbone.View.extend({
   ...
   events: {
      "click" : "foo"
      , "dblclick div": "bar"
   }
   ...
});
var specificItemView = itemView.extend({
   ...
   // I'd like this to simply add an event handler not replace the ones defined above
   events: {
      "contextmenu" : "baz"
   }
   ...
});
特定项目视图:

var itemView = Backbone.View.extend({
   ...
   events: {
      "click" : "foo"
      , "dblclick div": "bar"
   }
   ...
});
var specificItemView = itemView.extend({
   ...
   // I'd like this to simply add an event handler not replace the ones defined above
   events: {
      "contextmenu" : "baz"
   }
   ...
});

是否支持以这种方式扩展视图,或者我们只能对模型这样做

如果我没有弄错的话,extend不会递归工作,但您可以自己做。我认为这样做应该奏效:

var specificItemView = itemView.extend({
   ...
   // I'd like this to simply add an event handler not replace the ones defined above
   events: _.extend({
      "contextmenu" : "baz"
   }, itemView.prototype.events),
   ...
});

,该扩展不会递归合并