在我看来 - 在我从集合中获取数据后,我试图使用“native”循环模型 - 每种方法,但我收到错误:
Uncaught TypeError: Object [object Object] has no method 'each'
我仍然可以将我的模型转换为json对象..
console.log(models.toJSON()); // giving result
models.each(function(model){
console.log(model); // throw the error.. why..?
})
这是我正在安慰的视图的一部分:
initialize:function(){
var that = this;
this.collection = headerCollection;
this.listenTo(this.collection, "add", this.addAll);
this.collection.fetch();
},
addAll:function(models){
models.each(function(model){
console.log(model);
})
console.log(models.toJSON());
},
会出现什么问题?
答案 0 :(得分:1)
如果您查看文档中的Catalog of events,则表示传递给集合的add
事件处理程序的参数为(model, collection, options)
,因此model
将不会each
1}}方法。也许你可以听reset
事件,因为传递的参数是(collection, options)
。
然后您应该可以models.each
方法addAll
进行操作。
答案 1 :(得分:0)
看起来集合作为实际集合传递给你的addAll方法,但作为一个数组?
console.log(typeof models)
做了什么?
如果将事件处理程序绑定到this
,则可以通过该方式访问集合。
initialize:function(){
var that = this;
this.collection = headerCollection;
this.collection.on("add", this.addAll, this);
this.collection.fetch();
},
addAll:function() {
this.collection.each(function(model){
console.log(model);
})
console.log(this.collection.toJSON());
},
我不熟悉listenTo方法,所以我不知道它是做什么的。