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

Angular嵌套笔记页面routerLink跳转路径错误问题排查

问题根因

核心是DOM事件冒泡触发了两个路由跳转:
你将跳转编辑页的[routerLink]="['/edit', note.id]"绑定在了父元素<mat-list-item>上,同时内部的箭头按钮绑定了跳转子笔记列表的[routerLink]="['/notes', note.id]"。Angular的routerLink指令默认监听宿主元素的click事件触发导航,点击箭头按钮时,点击事件会从子元素向上冒泡到父级<mat-list-item>,先后触发两个导航逻辑:先执行按钮的跳转进入/notes/xxx,再执行父元素的跳转进入/edit/xxx,所以你最终看到的是编辑页,而子笔记列表页被压入了导航栈,点击返回才能显示。

修复方案

方案1:阻止事件冒泡(最便捷)

给内部箭头按钮添加点击事件,阻止冒泡到父元素即可:

<button mat-icon-button 
  *ngIf="note.children.length > 0" 
  [routerLink]="['/notes', note.id]"
  (click)="$event.stopPropagation()">
  <mat-icon>arrow_forward_ios</mat-icon>
</button>

方案2:调整路由绑定区域

将编辑页的routerLink从整个<mat-list-item>移到左侧的图标、标题区域,仅点击左侧内容才触发编辑跳转,按钮区域独立操作,从根源避免事件冲突。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 17:24:03