我有一个模型用户设置如下:
User = Backbone.Model.extend({
urlRoot: '/users',
defaults: {
id: '',
username: '',
password: ''
},
idAttribute: '_id',
initialize: function () {
console.log('User initiated');
}
});
和Collection一样:
var Users = Backbone.Collection.extend({
url: "/users",
model: User,
});
Users = new Users();
然后当我试图在我的视图中使用时获取模型
Users.fetch()
,无论我在后端有多少结果,我只会在“集合”数组中返回一个结果。
但是,在我从模型用户中删除idAttribute:'_ id'后,我得到了确切的结果数作为后端。
有谁知道为什么会这样?
P.S。 当我进入控制台时,似乎Users.fetch()的启动次数与我拥有的用户数相同(每次回调集合中只有1个模型)。所以基本上最后一次调用会覆盖所有以前的调用,只显示最后的结果。
但我仍然不知道到底发生了什么。
答案 0 :(得分:0)
当您的id属性未定义所有模型或其他相同值时,通常会发生这种情况。检查值_id
是否已在响应中定义且不同。
编辑:
您确定在没有下划线的情况下尝试引用id
吗?如果是这种情况,您可以省略idAttribute
属性,因为id
是默认值。