3

Ember 新手,我无法弄清楚如何通过关联的 ember 数据模型或简单地作为 json 对象呈现嵌套选项。

JSON 看起来像这样:

 contact: {
        first_name,
        last_name,
        emails: [{email1...}, {email2...}]
 }

寻找最简单的解决方案,我在车把模板中尝试了这个:

{{#each emails}}
     ...
{{/each}}

尝试更高级的解决方案,最终将需要它,我创建了以下 ember-data 模型:

App.Contact = DS.Model.extend({
  first_name: DS.attr('string'),
  last_name: DS.attr('string'),
  company: DS.attr('string'),
  emails: DS.hasMany('Rainmaker.Email')
});

App.Email = DS.Model.extend({
  contact_id: DS.attr('number'),
  email_address: DS.attr('string'),
  emails: DS.belongsTo('Rainmaker.Contact')
});

这似乎有点工作(App.Email:ember517 在屏幕上呈现)但它看起来仍在尝试 ping 服务器以获取电子邮件地址,并且我已经将它们延迟加载。

我不知道下一步该去哪里,非常感谢我忽略的任何指导或文档链接。谢谢。

4

1 回答 1

2

12 月 28 日,Ember 团队包含了对嵌入式记录的支持。如果您查看页面大约 1/3 处的https://github.com/emberjs/data ,它会为您提供一些指导。

在您的情况下,只需根据文档更改emails: DS.hasMany('Rainmaker.Email')为即可。emails: DS.hasMany('Rainmaker.Email',{embedded:true})

于 2013-01-01T22:21:22.507 回答