当事件发生时,el未定义

时间:2012-06-02 14:02:31

标签: backbone.js backbone-events backbone-views

我从一个视图中触发一个事件:

select: function () {
    // Shorthand for the application namespace
    var app = brickpile.app;
    // Trigger the selected event
    app.trigger('selected', this.model);
}

并在另一个视图中绑定到同一事件:

initialize: function () {
    // Shorthand for the application namespace
    var app = brickpile.app;
    // bind to the selected event
    app.bind('selected', this.selected);
},

在我的函数中,我得到当前的实例el属性?

selected: function (model) {
    // find the input hidden located in this views el
    $(this.el)... // is undefined
},

我错过了什么?

1 个答案:

答案 0 :(得分:1)

我引用Backbone FAQ来回答你的问题

  

绑定“此”

     

也许唯一最常见的JavaScript“问题”是当你将一个函数作为回调传递时,它就是这样的事实   失去的价值。使用Backbone,处理事件和   回调,你经常会发现依赖_.bind和_.bindAll很有用   来自Underscore.js。

     

将回调绑定到Backbone事件时,您可以选择传递   可选的第三个参数指定将在此时使用的   稍后会调用回调。

尝试

app.bind('selected', this.selected, this);

_.bindAll(this, 'selected');
app.bind('selected', this.selected);