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

Angular 4 - Route Resolve For Nested Component?

我有以下结构:

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

我正在尝试将一些数据解析为 Nested Component 3 - 这里唯一具有路由的组件是父组件。有没有一些方法可以在没有以下情况的情况下获取嵌套组件 3 中的解析数据:

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

那么,最好的方法是什么。 IIrc in Angular 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);
  });
}

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

您不能真正将它们全部组合成一个混搭对象,因为路由参数订阅永远不会 "completes"。