【发布时间】:2025-12-28 05:50:15
【问题描述】:
首先,我不确定这是否是实现我想要的正确方法.. 我正在尝试将如下导出绑定添加到 router.navigate()-method:
<call [caller]="caller"></call>
问题是我从不使用该指令,而是通过路由器对其进行寻址:
acceptCall() {
this.router.navigate(["call"]);
}
如何在 acceptCall() 方法中实现与第一个示例相同的导出绑定? 我已经添加了一个 Input() 变量并使用 queryParams 进行了尝试,如下所示:
@Input() caller: Caller;
acceptCall(caller) {
this.router.navigate(["call"], {queryParams: caller});
}
但这不起作用。
【问题讨论】:
-
几乎!试试
this.router.navigate(["call", caller]); -
对我不起作用,我必须修改我的 RouterModule.forRoot 吗?我的目前看起来像:{ path: 'call', component: CallComponent }
-
嗯,是的,
{path: 'call/:caller'}你可以在你的子组件中使用this.route.params.subscribe((params: Params) => this.myParam = params['caller']);来获取它(路由是一个ActivatedRoute) -
我已经更新了我的模块,但还没有完全了解其他内容 :D 你在哪里声明 Params ,myParam?您能否提供该类的完整代码示例作为答案?
-
@reveN:你的代码是如何组织的并不是很明显。如果您清楚地说明您提供的所有代码的位置,会更容易为您提供帮助。
标签: angular typescript binding router