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

sti*_*man 3 backbone.js

我是一个backbone.js n00b,我无法理解如何扩展视图.我有一个基本的"项目"模型和视图.我想将模型和视图扩展为"specificItem".有没有办法在扩展视图中添加事件而不是全部替换它们?

物品查看:

var itemView = Backbone.View.extend({
   ...
   events: {
      "click" : "foo"
      , "dblclick div": "bar"
   }
   ...
});
Run Code Online (Sandbox Code Playgroud)

具体项目查看:

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

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

top*_*pek 7

如果我没有弄错,延伸不会递归,但你可以自己做.我认为这样的事情应该有效:

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),
   ...
});
Run Code Online (Sandbox Code Playgroud)

这是证明,扩展不会递归合并