展示收藏品 - 骨干

时间:2013-09-25 09:22:27

标签: backbone.js collections

我在尝试显示集合项时遇到问题,特别是我在collection.each()函数上遇到错误:

getTodo: function(){
  this.todos = new TodosCollection;
  this.todos.query = new Parse.Query("test");
  this.todos.fetch({
success:function(obj){
    console.log(obj.length);
    obj.each(this.addOne);
    }
  });
},
addOne: function(todo){
  console.log(todo);
}

使用此代码我收到此错误:

  

未捕获的TypeError:undefined不是函数

console.log(obj.lenght)是!= 0,那么错误在哪里?

1 个答案:

答案 0 :(得分:1)

您调用this方法的addOne是回调,而不是您的对象 - 而回调的属性addOneundefined,因此您正在尝试将undefined作为函数调用。您可以通过以下方式将回调绑定到对象范围:

success: _.bind(function(obj){
  obj.each(this.addOne);
}, this)