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