2012-10-11 87 views
2

我想在模板中引用時自動加載模型綁定關係。舉例來說,如果我有模型是這樣的:使用ember-data自動加載模板中引用的模型

App.User = DS.Model.extend 
    name: DS.attr 'name' 

App.Contact = DS.Model.extend 
    addedBy: DS.belongsTo 'App.User' 

和這樣的觀點:

<div>{{contact.addedBy.name}}</div> 

如果燼數據風行,它需要加載一個用戶這將是非常好的主鍵在「addedBy」中。目前我必須使用App.User.find(contact.get('addedBy'))手動加載用戶,然後模板綁定更新以顯示用戶的名稱。

這是一個非常簡單的例子,但實際上我有時會發現自己遍歷關係相當遠。有沒有簡單的方法來實現這一點?

謝謝大家!

回答

0

原來,默認情況下,ember-data完全是我想要的,問題在於我的代碼中存在一個錯誤。

確保適配器的findMany()方法的後端以與ID參數數組相同的順序返回記錄,否則您的DS.hasMany關係將會非常非常奇怪!

0

在爲聯繫人提供服務時對相關用戶進行側載時如何處理?

假設你正在使用Rails & active_model_serializers寶石,你將有一個ContactSerializer這樣的:

class ContactSerializer < ActiveModel::Serializer 
    embed :ids, :include => true 
    #... 
    has_one :user 
end 

這樣做,當接觸被檢索的用戶將自動填充。

參見documentation