用于多条路径的 Angular routerLinkActive

标签 angular routing angular2-routing routerlinkactive

在我的 Angular 5 项目中,我有一个引导导航栏菜单。 routerLinkActive 在路径的开头与菜单的 routerlink 匹配时确实工作得很好,例如:

<li [routerLinkActive]="['active']">
  <a [routerLink]="['/entity/teacher']">Teacher</a>
</li>

上面的代码很好地激活了“/entity/teacher/add”等菜单项

问题是,我有一种“包罗万象”的导航项,其中包含未排列的内容:

<li [routerLinkActive]="['active']">
  <a [routerLink]="['/config']">Configuration</a>
</li>

我希望此项目也针对路径 /tasks/entity/settings 突出显示,而不仅仅是针对 /config

问题是,我无法更改应用程序的路由。如何让菜单项与其他路由路径以及 routerLink 中的路由路径对齐?

最佳答案

您可以使用模板引用变量来获取对外部路由的引用,然后在它们处于事件状态时应用该类。您可以将它们链接到现有的 routerLinkActive 元素或隐藏的元素。这是使用隐藏方法的示例。

<li routerLinkActive="active" [ngClass]="{'active': tasksActive.isActive || settingsActive.isActive }">
  <a [routerLink]="['/config']">Configuration</a>
</li>
<a routerLink="/tasks" routerLinkActive #tasksActive="routerLinkActive" style="display: none"></a>
<a routerLink="/entity/settings" routerLinkActive #settingsActive="routerLinkActive" style="display: none"></a>

关于用于多条路径的 Angular routerLinkActive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49114399/

相关文章:

javascript - 无法从路径导入 IonicModule

ruby-on-rails - 基于正则表达式的Rails 3路由

angular2-routing - 来自命名 socket 的 Angular 2 相对路径

angular - 如何在 Angular2 编译器/cli ngc 命令中使用 RouterModule.forRoot()

angular - RouteLink 测试 Angular2

javascript - 按钮刷新页面而不是调用函数

angular - 获取 Firebase Firestore 集合中最后创建的文档

java - XLSX 下载已损坏 Apache POI 到带有 ResponseEntity<Resource> 的 ByteArrayOutputStream

ruby-on-rails-3 - 来自辅助方法的意外点

asp.net-mvc - ASPNET MVC : Way to figure out the route of the referer (sic)?