0

在我看来-从集合中获取数据后,我尝试使用“本机”循环模型-每种方法,但出现错误:

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());
},

会是什么问题?

4

2 回答 2

1

如果您查看文档中的事件目录,它会说传递给集合add事件处理程序的参数是(model, collection, options),因此model没有each方法。可能您可以收听reset事件,因为为此传递的参数是(collection, options).

那么你应该可以models.eachaddAll方法中做。

于 2013-08-20T07:48:53.513 回答
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 方法,所以我不知道它是做什么的。

于 2013-08-20T07:41:31.803 回答