我正在尝试从this.collection
内访问setInterval
。但是,这不受约束。我似乎无法弄清楚如何绑定它,以便this
可以访问集合,而不是setInterval
对象。
这是我视图中的剪辑。
initialize: function(){
_.bindAll(this);
},
start: function() {
setInterval(function() {
this.collection.each(function(item) {
console.log(item.id);
});
}, 5000);
}
有什么建议吗?
答案 0 :(得分:8)
设置回调时,您应该bind()
this
所需的值:
setInterval(function() {
this.collection.each(function(item) {
console.log(item.id);
});
}.bind(this), 5000);
如果您需要IE8兼容性,请不要忘记包含上述MDN页面中的垫片。
答案 1 :(得分:4)
你可以这样做:
initialize: function(){
_.bindAll(this);
},
afterInterval: function() {
this.collection.each(function(item){
console.log(item.id);
});
},
start: function() {
setInterval(this.afterInterval, 5000);
}
afterInterval
现在是一个回调版,可以访问该视图的this
。