You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular中router.navigateByUrl传值失败问题求助

解决Angular路由参数传递为空的问题

嘿,我一眼就发现你卡在哪了!问题出在Component1里的路由跳转写法上,咱们一步步来搞定:

问题根源

你在Component1里写的跳转代码是:

this.router.navigateByUrl('probarborrar/', event.value)

但navigateByUrl的第二个参数是路由配置选项(NavigationExtras),不是用来传递路由参数的!你传的event.value根本没被当作idUser参数拼到路径里,所以Component2自然拿不到任何值。

正确的跳转方式

你需要把参数直接整合到路由路径里,这里有两种靠谱的写法:

方式1:修正navigateByUrl的用法

用模板字符串把参数拼进完整路径:

// Component1的跳转代码改成这样
this.router.navigateByUrl(`probarborrar/${event.value}`);

方式2:使用navigate方法(更推荐)

navigate支持数组格式的路由路径,Angular会自动匹配路由配置里的参数,不容易写错:

// Component1里替换成这个写法
this.router.navigate(['probarborrar', event.value]);

验证Component2的代码

你的Component2代码其实没问题,只要跳转路径正确,this.route.snapshot.paramMap.get('idUser')就能拿到值。如果你的组件可能被复用(比如从同一路由跳转回来),还可以订阅paramMap的变化来确保实时获取参数:

ngOnInit() {
  // 订阅参数变化,适合组件复用的场景
  this.route.paramMap.subscribe(params => {
    this.dni = params.get('idUser');
    console.log('en probando es :', this.dni);
  });
}

改完之后再测试,Component2里的dni就能正常显示你传递的event.value值啦!

内容的提问来源于stack exchange,提问作者EduBw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:01:43