Angular 4 - 针对嵌套组件的路由解析?

时间:2017-07-17 18:51:50

标签: angular angular2-routing resolver

我有以下结构:

Parent Component
 |__Nested Component 1
 |__Nested Component 2
     |__Nested Component 3 

我正在尝试将一些数据解析为Nested Component 3 - 此处唯一具有路由的组件是Parent Component。有没有办法在没有的情况下在嵌套组件3中获取解析数据:

一个。使用@Input - 这是一个脏的三个组件链 B.使用某些服务 - 我意识到我可以将数据保存到某些服务并在嵌套组件3中检索它 - 也许这是要走的路,但我正在寻找其他选择。虽然这可能是唯一真正的方式。

那么,这里最好的方法是什么。在Angular 1中的Iirc,所有子组件都可以得到解析数据,但这似乎并非如此。

1 个答案:

答案 0 :(得分:1)

您可以获取父路线的路线参数,如下所示:

ngOnInit() {
  const pathFromRoot = this.route.pathFromRoot;
  let paramsSub = Observable.merge(...pathFromRoot.map(p => p.params));
  paramsSub.subscribe(params => {
    //emits the params map for each parent route.
    console.log(params);
  });
}

请注意,您将获得树中每条路线的路线参数图。所以在你的情况下,订阅回调将被触发两次。

你无法将它们全部组合成一个混合对象,因为路径参数订阅永远不会“完成”。