Backbone.js - 每个方法抛出错误,同时循环模型

时间:2013-08-20 07:34:06

标签: backbone.js backbone-views

在我看来 - 在我从集合中获取数据后,我试图使用“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());
},

会出现什么问题?

2 个答案:

答案 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方法,所以我不知道它是做什么的。