Ember.js - 无法渲染嵌套模型

时间:2013-07-18 06:07:17

标签: ember.js handlebars.js

有一个即将到来的周末项目并用它来评估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。我试过嵌入,侧载无济于事。我确信这很简单,我很想念。谢谢你!

1 个答案:

答案 0 :(得分:0)

使用each帮助程序时,可以使用它来更具体地说明要循环的项目以避免此类问题。

尝试以下方法:

{{#each email in model.emails}}
  {{email.emailAddress}}
{{/each}}

这也应该有效:

{{#each emails}}
  {{this.emailAddress}}
{{/each}}

此外,您的模型属性称为emailAddress而不是email_address

希望它有所帮助。