0
我正在向服务器请求用户。只有一个用户,这是通过HTTP传递的。但是,当我循环从.findAll()
调用返回的行时,我会看到多个值。何时会store.findAll()返回重复值?
我的路线:
U.UsersIndexRoute = Ember.Route.extend({
model: function() {
return {
users: this.store.findAll('user')
};
},
setupController: function(controller, model) {
controller.set('model', model.users);
}
});
我控制器(有删节):
U.UsersIndexController = U.ApplicationArrayController.extend({
_modelChanged: function() {
this.get('model').then(_.bind(function(users) {
_.each(users.get('content'), function(user) {
// I should only see one name logged
console.log(user.get('name'), user.get('id'));
});
}, this));
}.observes('model', 'orgNameForId')
})
服务器响应GET /users
{
"Results": [{
"id": 16,
"Name": "Chris"
}]
}
当这个运行时,控制台显示2个用户,一个是Chris 16
,另一个是Chris null
。
我的问题
- 是否为空ID的意思是在我的代码别的东西创造的纪录?
- 我应该总是过滤掉没有ID的模型吗?
- 帮助!
您最初是否通过应用程序创建此用户?如果是这样,当您创建用户时,它期望从服务器回拨一个ID。如果不是,我认为它保留为空。然后,当您执行GET请求时,它将获得一个新的请求,而旧的请求仍在内存中。另外,ember-data需要从服务器返回以下格式:'{'users':[{'id':16,'Name':“Chris”}]}'我很惊讶它的工作原样。 – EmptyArsenal
是的,我完全有一个本地用户,没有得到正确的创建。良好的调用。此外,我有一个适配器,翻译该响应格式。我忘了提及,当我简化我的代码的问题。 – cdownie