アイテムのリストを表示し、各リストを独自のコントローラーでラップする次のテンプレート設定があります。
{{#each controller itemController="contact"}}
<div class="contact-entry">
<div class="title" {{action toggle on="click"}}>{{title}}</div>
{{#if showDetails}}
<div class="details">
<div>{{safe details}}</div>
</div>
{{/if}}
</div>
{{/each}}
メイン コントローラーは ArrayController と呼ばれContentsController
、各アイテムは ObjectController と呼ばれるオブジェクトにラップされますContentController
。の内容はContentsController
、ルートで明示的に設定されます (データを単純化しました)。
App.ContactsRoute = Em.Route.extend({
model: function() {
return [{'title': 'first'}, {'title': 'second'}];
}
});
これは本当にうまくいきます。ただし、別のパスに移動してから再び戻ると、の設定は保持されContentController
ません。モデル データがリロードされ、リスト アイテムごとに ObjectController が作成されると仮定します。ちなみに、これはContentsController
設定を保持する の場合には当てはまりません。
ContentController
ページにアクセスするたびに、すべてのリスト アイテムに新しいアイテムを作成することを防ぐための解決策は何ですか?