9
const appRoutes: Routes = [
{ path: 'parent', component: parentComp, data: { foo: 'parent data' }, children: [
{ path: 'child1', component: childComp1, data: { bar: 'child data 1' },
{ path: 'child2', component: childComp2, data: { bar: 'child data 2' }
]}
];
如果我瀏覽到/parent/child2
,然後看看ActivatedRoute
從parentComp
,data.foo
定義,但data.bar
不是。我可以訪問所有孩子的數組,但我不知道哪一個被激活。如何從父路由組件訪問激活的子路由數據?
如何從父路由組件訪問激活的子路由數據?
所以'firstChild'不在路線兒童定義的第一個孩子,但其激活孩子的第一個孩子? – adamdport
你知道如何在相同的場景中使用observable嗎?我試過this.route.firstChild.data.subscribe,但是當我導航到其他子組件時,它不會被觸發? – jbojcic
@Julia,你爲什麼不在嵌套路由/命名空間下嵌套這些子路由?您的答案從'route.firstChild.data'更改爲'route.firstChild.firstChild.data'。將它再次嵌套,並且您有'route.firstChild.firstChild.firstChild.data'。如果您有多個參考,那可能意味着巨大的ChangeCost。 「ActivatedRouteSnapshot」需要的是一個'route.lastChild',以便始終獲得鏈中最遠的對象。問題是,* route.firstChild是我在路由的'children'數組中首次聲明的嗎?或者,是否是''/ root /祖父母/父母/子女/孫子女'的下一位?'* – Cody