2012-10-11 54 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