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服务器以获取电子邮件地址,我已经让它们延迟加载了。
我不知道下一步该去哪里,非常感谢我忽略的任何指导或文档链接。感谢。
答案 0 :(得分:2)
在28日,Ember团队已经包含对嵌入式记录的支持。如果您在页面的大约1/3处查看https://github.com/emberjs/data,它会为您提供一些指示。
在您的情况下,根据文档,只需将emails: DS.hasMany('Rainmaker.Email')
更改为emails: DS.hasMany('Rainmaker.Email',{embedded:true})
即可。