angular - 向 Angular router.navigate 添加参数

标签 angular typescript binding router

首先,我不确定这是否是实现我想要的目标的正确方法。 我正在尝试将如下所示的导出绑定(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/

相关文章:

javascript - <a> 点击不工作但 href 是正确的并且工作

javascript - 将参数传递给 Angular 中 @Injectable 的构造函数?

Angular Material Table 在列/图标上展开行单击

reactjs - 根据传递的组件推断 Prop 类型也作为 Prop

c# - 绑定(bind)到数据表中的数字字段时如何允许空值?

java - 无法在 JDBC PreparedStatement 的单引号内转义参数

css - Angular 2 外部样式没有内联到标题

typescript - 推断函数返回类型,了解一个属性的值

jquery - 我如何在 Angular 2 中使用 mdbootstrap?

JavaFX Beans 绑定(bind)突然停止工作