2011-11-22 98 views
3

我是backbone.js n00b,无法理解如何扩展视图。我有一个基本的“项目”模型和视图。我想扩展模型和视图以成为“特定项目”。有没有办法在扩展视图中添加事件,而不是全部替换它们?在backbone.js中扩展视图时添加事件处理程序?

查看项目:

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" 
    } 
    ... 
}); 

甚至它是不是支持扩展这样的观点或可我们只做到这一点,以模型?

回答

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,扩展不recursivly合并

相关问题