2015-05-11 33 views
0

我有一個型號的用戶設置是這樣的:錯誤檢索模型一旦有idAttribute =「_id」

User = Backbone.Model.extend({ 
     urlRoot: '/users', 

     defaults: { 
     id: '', 
     username: '', 
     password: '' 
     }, 

     idAttribute: '_id', 

     initialize: function() { 
     console.log('User initiated'); 
     } 

    }); 

和收取是這樣的:

var Users = Backbone.Collection.extend({ 

    url: "/users", 

    model: User, 

    }); 

    Users = new Users(); 

然後當我試圖在我的視圖中使用 Users.fetch()來獲取模型時,無論我在後端有多少結果,我都只會收回「集合」數組中的一個結果。

但是,在我從模型用戶中刪除idAttribute:'_id'後,我得到了作爲後端的確切結果數量。

有誰知道爲什麼發生這種情況?

p.s. 當我進入控制檯時,似乎Users.fetch()被激發的次數與我擁有的用戶數量相同(每次回調集合中只有1個模型)。所以基本上最後一次調用覆蓋了以前的所有調用,並只顯示最後的結果。

但我仍然不知道究竟發生了什麼。

回答

0

這通常發生在您的id屬性未定義爲所有型號或其他值相同時。檢查價值_id是在響應中定義和明確的。

編輯:

你確定你是不是嘗試引用id沒有下劃線?如果是這種情況,您可以省略idAttribute屬性,因爲id是默認值。

+0

我意識到我把「idAttribute:'_id'」放在錯誤的地方,它應該在模型定義的「默認」括號內。雖然謝謝! – benjaminz

相關問題