我有一个带搜索过滤器的搜索屏幕和一个带有搜索结果表的结果屏幕。
this.resource('search', function() {
this.route('results');
});
当用户选择“搜索”路线上的提交按钮时,他们将转换为“search.results”路线。
当用户在“search.results”路线中更改任何过滤器时,会将其重定向到“搜索”资源,因为结果不再有效。
我遇到的问题是之前的ArrayController记录在搜索之间徘徊。我不得不手动清除数组控制器中的项目,如下所示,以便旧记录消失。
为什么我需要这样做。有更好的方法吗?
model : function() {
this.controllerFor('search/results').set('content', []); //why do I need this?
return this.fetchItems(1);
},
答案 0 :(得分:0)
当您在应用内导航时,控制器的内容会消失,除非有些内容发生变化。要清除它们,你可以使用
this.controllerFor('search/results').get('content').clear()
。如果你不想清除它们并希望表明结果是以某种方式获取的,比如加载微调器,请查看ember的loading routes
。