我有以下结构:
Parent Component
|__Nested Component 1
|__Nested Component 2
|__Nested Component 3
我正在尝试将一些数据解析为Nested Component 3
- 此处唯一具有路由的组件是Parent Component。有没有办法在没有的情况下在嵌套组件3中获取解析数据:
一个。使用@Input - 这是一个脏的三个组件链 B.使用某些服务 - 我意识到我可以将数据保存到某些服务并在嵌套组件3中检索它 - 也许这是要走的路,但我正在寻找其他选择。虽然这可能是唯一真正的方式。
那么,这里最好的方法是什么。在Angular 1中的Iirc,所有子组件都可以得到解析数据,但这似乎并非如此。
答案 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);
});
}
请注意,您将获得树中每条路线的路线参数图。所以在你的情况下,订阅回调将被触发两次。
你无法将它们全部组合成一个混合对象,因为路径参数订阅永远不会“完成”。