我有以下模板设置显示项目列表,并将每个列表包装在自己的控制器中:
{{#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
每次访问页面时,防止 ember 为每个列表项创建新项的解决方案是什么?