首先,我不确定这是否是正确的方法,以实现我想要的...... 我试图将如下所示的导出绑定添加到router.navigate() - 方法:
<call [caller]="caller"></call>
问题是我从不使用该指令,而是通过路由器对其进行处理:
acceptCall() {
this.router.navigate(["call"]);
}
如何从acceptCall()方法中的第一个示例实现相同的导出绑定? 我已经添加了一个Input()变量并尝试使用queryParams,如下所示:
@Input() caller: Caller;
acceptCall(caller) {
this.router.navigate(["call"], {queryParams: caller});
}
但这不起作用。
答案 0 :(得分:9)
根据我的意见,您必须:
1 - 重新定义您的路线
{path: 'call/:caller', component: MyComponent }
2 - 更改父组件 中的导航
3 - 在子组件中,获取参数this.router.navigate(["call", caller]);
import { ActivatedRoute } from '@angular/router';
// code until ...
myParam: string;
constructor(private route: ActivatedRoute) {}
// code until ...
ngOnInit() {
this.route.params.subscribe((params: Params) => this.myParam = params['caller']);
}