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"。
我有以下结构:
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"。