在Backbone.View
个实例中,可以设置回调的events
哈希值:
events: { 'click #element' : 'myFunction' }
当我尝试访问的函数不是视图实例的直接函数(例如this.model.myFunction
)时,我无法在events
哈希中传递函数。我试过了:
events: { 'click #element' : 'model.myFunction' }
和
events: { 'click #element' : this.model.myFunction }
如何告诉我的骨干视图使用this.model.myFunction
作为events
哈希的回调?
答案 0 :(得分:6)
不,你不能这样做。 relevant chunk of Backbone看起来像这样:
delegateEvents : function(events) {
if (!(events || (events = getValue(this, 'events')))) return;
this.undelegateEvents();
for (var key in events) {
var method = this[events[key]];
if (!method) throw new Error('Event "' + events[key] + '" does not exist');
//...
因此events
中的值必须是视图对象中方法的名称。您可以自己路由事件:
events: { 'click #element': 'myFunction' },
// ...
myFunction: function(e) {
this.model.myFunction(e);
}