2017-04-11 73 views
1

我有路線,一條父母路線和一些孩子。父路由器有解決方案 。如何手動運行父路由解析器Angular 2?

{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和所有兄弟路徑獲取實際數據['order']後,從子路由運行父解析器?

回答

0

如果您只是從一個孩子導航到同一父母的其他孩子,則不會再次解析數據。只有當您遠離父母:orderId路徑時纔會解決該問題。

您可能會嘗試返回訂單數據的可觀察數據,您可以在同級路線中設置該數據。並訂閱兒童路線以獲取更新的細節。但是要知道,當你離開:orderId的路徑並回來時,你會得到一個新的Observable,因爲數據將被再次解析。

話雖如此,這不是一個好的模式,如果您知道您要在兒童中更新數據,我會建議在中心位置使用服務代替數據操作。

希望這有助於!