1

我在尝试显示收藏项时遇到问题,特别是在 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);
}

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

未捕获的类型错误:未定义不是函数

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

4

1 回答 1

1

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

success: _.bind(function(obj){
  obj.each(this.addOne);
}, this)
于 2013-09-25T10:58:23.880 回答