为什么我的backbone.js集合重置只添加了1个模型

时间:2012-07-06 20:57:26

标签: javascript collections backbone.js

有问题的收集抓住了一堆朋友,然后使用reset来保存所有新朋友。我遇到的问题是,它只会在集合中添加1个朋友。

我在console.log上做了一个cModels,它在阵列中显示了超过300个对象,所以我知道它不仅仅是1.重置的任何原因只会增加1 ?

这是我的收藏:

FriendsCollection = Backbone.Collection.extend({
    model: UserModel,

    getFriends: function () {
        $.post(baseUrl + dataFriendsUrl, $.proxy(function(data) {
            var friends = $.parseJSON(data);
            var cModels = [];

            for(var key in friends.data) {                
                var user = new UserModel();
                user.set({
                    fbid: friends.data[key].id,
                    username: friends.data[key].name
                });

                cModels.push(user);
            }

            this.reset(cModels);

            console.log(this);

        }, this));
    }
});

在使用开发人员工具检查模型后,模型看起来很好。

1 个答案:

答案 0 :(得分:28)

这可能是因为模型具有相同的ID。

Backbone集合不允许具有重复id值的模型。 (见commit