首先,我不确定这是否是实现我想要的目标的正确方法。 我正在尝试将如下所示的导出绑定(bind)添加到 router.navigate() 方法:
<call [caller]="caller"></call>
问题是我从不使用该指令,而是通过路由器对其进行寻址:
acceptCall() {
this.router.navigate(["call"]);
}
如何在 acceptCall() 方法中实现与第一个示例相同的导出绑定(bind)? 我已经添加了一个 Input() 变量并像这样使用 queryParams 进行了尝试:
@Input() caller: Caller;
acceptCall(caller) {
this.router.navigate(["call"], {queryParams: caller});
}
但这行不通。
最佳答案
根据我的意见,您必须:
1 - 重新定义你的路线
{path: 'call/:caller', component: MyComponent }
2 - 在父组件中更改导航
this.router.navigate(["call", caller]);
3 - 在子组件中,获取param
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']);
}
关于angular - 向 Angular router.navigate 添加参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44821287/