我试图在我的应用程序中实现RouterLink活动,但我面临的问题是,它将类活动设置为多个链接.我就是这么做的

<ul class="nav nav-tabs">
  <li role="presentation" [routerLinkActive]="['active']"><a [routerLink]="['/']">Home</a></li>
  <li role="presentation" [routerLinkActive]="['active']"><a [routerLink]="['/about']">About</a></li>
  <li role="presentation" [routerLinkActive]="['active']"><a [routerLink]="['/contact']" >Contact Us</a></li>  
</ul>

这是它的样子

enter image description here Here it's how it look in dev-tools enter image description here And my address bar

enter image description here

Am i missing something because i'm doing as explained in angular docs.

推荐答案

try 将[routerLinkActiveOptions]="{exact: true}"设置为HTML,如下所示:

<ul class="nav nav-tabs">
  <li role="presentation" routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}"><a [routerLink]="['/']">Home</a></li>
  <li role="presentation" routerLinkActive="active"><a [routerLink]="['/about']">About</a></li>
  <li role="presentation" routerLinkActive="active"><a [routerLink]="['/contact']" >Contact Us</a></li>  
</ul>

它是如何工作的##

RouterLinkActive确实会将当前路由分块,并try 将其部分与您提供的RouterLink进行匹配.考虑到这一点,路由/将在任何地方匹配,因为它是所有其他路由的父路由(如/about/contact等,因为它由/+route-path组成).为了简单起见,它不是bug,有时它是您的应用程序中匹配多个路由所需的功能.为防止出现这种情况,您可以指定routerLinkActiveOptions与您所在的路由完全匹配.这意味着它不会与父路由匹配,而只会try 查找为此路由提供的routerLink.

Angular相关问答推荐

如何动态呈现组件并以Angular 访问它们的方法?

以Angular 动态添加和删除组件形状元素

将sass与@Use语句一起使用时出现Angular 新的VITE构建器编译错误

在Angular 为17的独立零部件中使用@NGX-平移

Angular 17:延迟加载带参数的独立组件?

是否可以在Angular(12+)中迭代指定的范围而不是整个数组

如何在 Angular 中每 x 秒从 REST api 加载数据并更新 UI 而不会闪烁?

如何在运行Angular应用程序的容器中访问Docker容器?

nx workspace angular monorepo 在创建新应用程序时抛出错误

无法在 Angular 中使用 CryptoJS 正确加密

Angular 13 Sass 模块无法在编译中正确导入文件

角 12 固态继电器 |页眉页脚在加载程序到来之前显示

当访问令牌在 MSAL for Angular 中过期时如何重定向用户?

Angular 无法从后端获取数据到前端

Angular 2模板驱动表单访问组件中的ngForm

在 Angular 2 中订阅路由参数和查询参数

初始化所有子类后的Angular 2生命周期钩子是什么?

Angular 2 单元测试 - @ViewChild 未定义

如何手动延迟加载模块?

Angular 应用程序中的语法错误:Unexpected token <