我使用骨干事件将一个上下文(一个视图对象)绑定到一个事件处理程序,这有点工作,但问题是在initialize方法中设置的所有propreties似乎都跟随事件的上下文被触发了。下面的代码说明了这个问题:
define(['backbone'], function( Backbone ) {
var PageView = Backbone.View.extend({
/* Globals */
pageExist: false,
initialize: function( options ) {
var self = this;
self.pageExist = true;
// _mediator is passed during instantition of the view
// I've removed the code here as it's not relevant for this problem
self._mediator.on("pin:add", self._pinAddCB, self);
// Using bindAll seems a little bit better as the context now carries the aditional method that i added on this view ( like _pinAddCB )
_.bindAll();
},
_pinAddCB: function( ) {
console.log(this.pageExist ) // FALSE ??
}
});
return PageView;
});
关于如何解决这个问题的任何想法?
答案 0 :(得分:0)
您是否尝试过示例中的代码如何工作?因为它应该正常工作。
_.bindAll();
会导致最新版本的下划线出错。pageExist
可能会被其他方法修改。