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

时间:2011-11-22 20:18:11

标签: backbone.js

我是骨干.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"
   }
   ...
});

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

1 个答案:

答案 0 :(得分: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),
   ...
});

Here is the proof,该扩展不会合并递归