我有路线,一条父路线和一些孩子。 父路由器有Resolve。
{path: ':orderId', component: OrderComponent,
resolve: {order: OrderResolver},
children: [...]}
“ngOnInit”中的所有路线都会从专利路线确定的解析器获取解析数据:
let data = this.route.snapshot.pathFromRoot.reduce((pv, cv) => Object.assign(pv, cv.data), {});
this.order = data['order'];
在第一个孩子路线中,我更新ORDER并导航到第二个孩子路线。但在第二个我得到解析器not-updater数据['order']。 如何在更新ORDER后在子路由中运行父解析器并在所有兄弟路由中获取实际数据['order']?
答案 0 :(得分:0)
将无法再次解析数据。只有离开父42
路径时才会解决此问题。
您可以尝试返回订单数据的Observable,您可以在兄弟路线中设置。并订阅子路线以获取更新的详细信息。但要知道,当你离开:orderId
路径并返回时,你会得到一个新的Observable,因为数据会再次被解析。
话虽如此,这不是一个好的模式,如果您知道要在子节点之间更新数据,我建议在中心位置使用服务代替数据操作。
希望这会有所帮助!!