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

xil*_*il3 12 javascript collections backbone.js

有问题的集合抓住了一堆朋友,然后它reset用来保存所有新朋友.我遇到的问题是,它只为该集合添加了1个朋友.

我做了一个console.logon 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));
    }
});
Run Code Online (Sandbox Code Playgroud)

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

Pau*_*aul 28

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

Backbone集合不允许具有重复id值的模型.(见本提交)

  • Ahhhhhhhhhhhhhh (2认同)