3

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を送信して電子メールアドレスを取得しようとしているようで、すでに遅延ロードされています。

次にどこに行くべきかわからないので、見落としているガイダンスやドキュメントへのリンクに大いに感謝します。ありがとう。

4

1 に答える 1

2

12月28日、Emberチームは埋め込みレコードのサポートを追加しました。ページの約1/3でhttps://github.com/emberjs/dataを見ると、これに関するいくつかの方向性がわかります。

あなたの場合、ドキュメントに従って、に変更emails: DS.hasMany('Rainmaker.Email')するだけでうまくいくはずです。emails: DS.hasMany('Rainmaker.Email',{embedded:true})

于 2013-01-01T22:21:22.507 に答える