2

我希望在模板中引用时自动加载模型绑定关系。例如,如果我有这样的模型:

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

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

和这样的视图:

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

如果 ember-data 发现它需要使用“addBy”中的主键加载用户,那就太好了。目前我必须使用 App.User.find(contact.get('addedBy')) 手动加载用户,然后模板绑定更新以显示用户名。

这是一个非常简单的例子,但在实践中,我有时会发现自己跨越了很远的关系。有没有一种简单的方法来自动化这个?

谢谢各位!

4

2 回答 2

0

在为联系人提供服务时侧载关联用户怎么办?

假设你使用的是 Rails & active_model_serializersgem,你会有ContactSerializer这样的:

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

这样做,用户将在检索联系人时自动填充。

请参阅文档

于 2012-10-11T08:46:30.950 回答
0

事实证明,ember-data 默认情况下完全符合我的要求,问题出在我的代码中。

确保您的适配器的 findMany() 方法的后端以与 ID 参数数组相同的顺序返回记录,否则您的 DS.hasMany 关系将表现得非常非常奇怪!

于 2012-10-12T02:31:20.153 回答