在Ember.js中渲染嵌套对象

时间:2012-12-31 01:14:47

标签: ember.js ember-data

Ember的新手,我无法弄清楚如何通过关联的ember-data模型或简单地作为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服务器以获取电子邮件地址,我已经让它们延迟加载了。

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

1 个答案:

答案 0 :(得分:2)

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

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