1

有一个即将到来的周末项目并使用它来评估 Ember.js,我无法弄清楚为什么我不能在我的模板中显示嵌套对象。这不起作用:

{{#each emails}}
  {{email_address}}
{{/each}}

当我尝试 {{emails}} 时,我得到一个提示,有些事情是正确的:

楷模:

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。我试过嵌入,侧载无济于事。我确定这是我想念的简单事情。在此先感谢!

4

1 回答 1

0

使用each帮助程序时,建议您更具体地了解您正在循环的项目以避免此类问题。

尝试以下操作:

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

这也应该有效:

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

而且,您的模型属性被称为emailAddress而不是email_address

希望能帮助到你。

于 2013-07-18T07:16:39.017 回答