目前我正在与我预期是很容易或共同任务挣扎:我想发起控制器路由模型的重新加载。据我所看到的,有这样的没有简单的方法?是的,我可以通过控制器的目标属性访问RouteInfo
对象,但是从那里我看不到出路刷新模型。
有关任务的一些背景我尝试解决:我有一个路线与从具有一定的标志没有设置集合提供的最后一个对象模型(例如,在路径/索引对象“没有索引”)。现在用户作用于该对象的触发,其中设置该标志(为“索引”)控制器的动作。所以,如果我通过导航来回显示的下一个对象重新加载路线。但我想直接在动作触发这个重载(无需重新加载整个页面,当然)。
我的问题:这是可能的,或者是有完成的事情我试图达到的另一个/正道?
我想这个不同的方法处理了一下。除非数据的存储需求是非常大的,你可以加载路由的整个集合:
import Route from '@ember/routing/route';
export default Route.extend({
model() {
return someFunctionThatFetchesYourData();
}
});
然后在你的控制使用计算属性来筛选出您想要的项目:
import Controller from '@ember/controller';
import { computed } from '@ember/object';
export default Controller.extend({
firstObjectWithProperty: computed('[email protected]', function(){
return this.model.find(obj => obj.notIndexed);
}),
});
然后,你可以在你的模板中使用{{firstObjectWithProperty}}
如果notIndexed
标志被更改,则将重新计算。