我的路由结构如下:
parent/:id
|
child
|
child
我可以通过以下方式从父组件获取参数:
ngOnInit() {
this.route.params.subscribe((params) => {
this.id = +params['id'];
});
}
然后只需将其作为输入附加到< router-output>不知何故?或者我是否必须像对待父母一样从每个孩子那里获取价值?
将id param从父组件传递到所有子组件的最佳方法是什么?
最佳答案
不幸的是,没有简单的方法来访问父路由参数,并且没有计划将其更改为#12767,因此唯一的方法是使用service或localStorage进行解决方法,无论您喜欢什么.
class Service {
public params:Subject<any> = new Subject<any>();
public next(params):void { this.params.next(params); }
}
class Parent {
constructor(service:Service, route:ActivatedRoute){
activatedRoute.params.subscribe(params => service.next(params));
}
}
class Child {
constructor(service:Service){
service.params.subscribe(params => console.log(params));
}
}
以下是组件可以相互通信的一些方法:
https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service
相关文章
转载注明原文:angular – 从父路径到子路径传递路由参数 - 代码日志