我有一个包含一系列标签(父路线)的父路线。
父路由有一个模型,该模型命中JSONAPI端点以收集与其子项数据相切的数据。
父路由访问的数据可以很快地改变,所以每当用户遍历子路由时我都想更新它。
有没有办法在每次转换到其中一个子路径时,在父路由上重新解析模型挂钩?
尝试了类似于下面的内容,但重新加载似乎不是父模型可用的方法。
父路线
export default Route.extend({
model() {
return this.store.findAll('parentData');
}
});
儿童路线
export default Route.extend({
beforeModel() {
this.modelFor('parentRoute').reload();
}
});
答案 0 :(得分:1)
如果重新加载父模型,子路径模型也会重新加载,导致无限循环重新加载。
认为最好的方法就是在子路径上执行findAll(),并使用该数据而不是父路径模型。
答案 1 :(得分:1)
我建议在父路线上使用' willTransition '挂钩。每个子路由转换都将触发父路由的willTransition挂钩,并且当父路由刚刚初始化时不会触发它。
所以看起来像这样:
export default Route.extend({
model() {
return this.store.findAll('parentData');
},
actions: {
willTransition() {
this.controller.get('model').reload();
}
}
});
答案 2 :(得分:0)
转换到子路径时,可以使用yourParentModel.reload()重新加载父路径模型。