有一个即将到来的周末项目并用它来评估Ember.js,我无法弄清楚为什么我不能在我的模板中显示嵌套对象。这不起作用:
{{#each emails}}
{{email_address}}
{{/each}}
当我尝试{{电子邮件}}时,我得到一个正确的提示:
型号:
App.Contact = DS.Model.extend({
firstName: DS.attr('string'),
lastName: DS.attr('string'),
company: DS.attr('string'),
emails: DS.hasMany('App.Email')
});
App.Email = DS.Model.extend({
contact: DS.belongsTo('App.Contact'),
emailAddress: DS.attr('string'),
});
路线:
App.Router.map(function() {
this.resource('contacts', function() {
this.resource('contact', {path: ':contact_id'});
});
});
App.ContactsRoute = Ember.Route.extend({
init: function() {},
model: function() {
return App.Contact.find();
}
});
App.ContactRoute = Ember.Route.extend({
model: function(params) {
return App.Contact.find(params.contact_id);
}
});
我不知道下一步该尝试什么。我在Rails中使用active_model_serializer。我试过嵌入,侧载无济于事。我确信这很简单,我很想念。谢谢你!
答案 0 :(得分:0)
使用each
帮助程序时,可以使用它来更具体地说明要循环的项目以避免此类问题。
尝试以下方法:
{{#each email in model.emails}}
{{email.emailAddress}}
{{/each}}
这也应该有效:
{{#each emails}}
{{this.emailAddress}}
{{/each}}
此外,您的模型属性称为emailAddress
而不是email_address
。
希望它有所帮助。