Backbone.js将此绑定到setInterval

dzm*_*dzm 4 javascript backbone.js underscore.js

我正试图this.collection从一个内部访问setInterval.但是,这不受约束.我似乎无法弄清楚如何绑定它,以便this可以访问集合,而不是setInterval对象.

这是我视图中的一个片段.

initialize: function(){
  _.bindAll(this);
},
start: function() {
  setInterval(function() {
    this.collection.each(function(item) { 
      console.log(item.id);
    });
  }, 5000);
}
Run Code Online (Sandbox Code Playgroud)

有什么建议?

mil*_*ose 8

您应该bind()this设置回调时获得所需的值:

setInterval(function() {
    this.collection.each(function(item) { 
        console.log(item.id);
    });
}.bind(this), 5000);
Run Code Online (Sandbox Code Playgroud)

如果您需要IE8兼容性,请不要忘记包含上述MDN页面中的垫片.