1

Ember ビュー テンプレートでループを実行しています。

メイン ビューの 1 つで、コントローラーのコンテンツをループし、その中のいくつかのコンテンツをループします。

{{#each version in versions}}
  {{#each comment in version.comments}}</p><br/>
    <p>{{comment.text}}</p>
  {{/each}}
{{/each}}

コードの別の場所で新しいコメントを作成するとApp.Comment.createRecord(content);、テンプレートが自動的に更新されません。コンテンツを再レンダリングするように「微調整」するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

1

私は新しいコメントを作成していました:

App.Comment.createRecord(content);

...実際に使用する必要があった場合:

version.get('comments').createRecord(content);

レンダリングされている同じオブジェクトにスコープcreateRecordすることで、Ember はオブジェクトが変更されたことを自動的に検出し、期待どおりにビューを更新します。

ありがとう!

于 2012-11-15T11:56:42.323 に答える
1

createRecord を実行すると、バージョン オブジェクトの hasMany 関係配列はおそらく自動更新されません。作成したコメント オブジェクトを関係配列に手動で追加すると、テンプレートが適切に更新されます。

version.get("comments").addObject(comment)

于 2012-11-04T06:32:38.597 に答える