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 に答える