Backbone.js 主干事件上下文未保持当前状态
我使用主干事件将一个上下文(视图对象)绑定到一个事件处理程序,这是一种工作方式,但问题是在初始化方法中设置的属性在触发事件时似乎都不会跟随上下文。下面的代码说明了问题:Backbone.js 主干事件上下文未保持当前状态,backbone.js,require,Backbone.js,Require,我使用主干事件将一个上下文(视图对象)绑定到一个事件处理程序,这是一种工作方式,但问题是在初始化方法中设置的属性在触发事件时似乎都不会跟随上下文。下面的代码说明了问题: define(['backbone'], function( Backbone ) { var PageView = Backbone.View.extend({ /* Globals */ pageExist: false, i
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;
});
关于如何实现这一点有什么想法吗?您是否尝试过示例中的代码是如何工作的?因为它应该正常工作
uu.bindAll()代码>在最新版本的下划线中导致错误
pageExist
被其他方法修改了1-我尝试过使用和不使用u0.bindAll,它似乎更接近它,没有它,上下文就是视图,但我添加到其中的方法似乎不像使用bindAll时那样遵循它们所做的2-pageExist仅在本模块中使用,除此之外,我还有在initialize方法中设置的其他属性和相同的行为。是的,我刚刚发现了问题,非常奇怪,视图使用的是未保存的模型,我正在对其调用sync,不知怎的,它以一种非常奇怪的方式弄乱了主干。。我只是将其更改为“保存”,现在它可以正常工作。感谢您的帮助,帮助我首先找出错误所在,如果我不确定是否接受,可能会在那里偶然发现错误