【问题标题】:Angular 4 - Route Resolve For Nested Component?Angular 4 - 嵌套组件的路由解析?
【发布时间】:2017-07-18 03:20:08
【问题描述】:

我有以下结构:

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

我正在尝试将一些数据解析为Nested Component 3 - 这里唯一有路由的组件是父组件。有没有办法在嵌套组件 3 中获取解析数据,而无需:

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

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

【问题讨论】:

  • 我认为选项 B 会更好。您可以像使用服务一样使用浏览器存储。

标签: angular angular2-routing resolver


【解决方案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);
  });
}

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

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

【讨论】:

  • 谢谢,我会试试的。
猜你喜欢
  • 1970-01-01
  • 2017-01-14
  • 1970-01-01
  • 1970-01-01
  • 2015-08-01
  • 2018-08-18
  • 1970-01-01
  • 2016-12-19
  • 2018-04-15
相关资源
最近更新 更多