angular - routerLinkActive问题

标签 angular bootstrap-4

所以,我在页面上有一个菜单。我有 routerLinkActive 属性,如果链接处于事件状态,该属性应该添加绿色背景。如果不活跃,它应该是灰色的。问题是,即使添加了 bg-success 类,它也不会覆盖 bg-dark 类。

我的问题是,你们知道我如何才能完成这项工作吗?我可以选择进入并修改引导文件,并从 bg-dark 中删除 "!important",但我不想搞乱它。

也许 Angular 东西,比如routerLinkNotActive,这将允许我交换类。

<a class="list-group-item bg-dark text-light" [routerLink]="'/admin-dashboard'" routerLinkActive="bg-success" [routerLinkActiveOptions]="{exact: true}">Dashboard</a>

最佳答案

借助 Angular 的 exportAs 属性,您可以解决这个问题。幸运的是,它已经在 routerLinkActive 中了。属性:

<a 
  class="list-group-item text-light" 
  [routerLink]="'/admin-dashboard'"
  routerLinkActive
  #rla="routerLinkActive" 
  [class.bg-success]="rla.isActive" 
  [class.bg-dark]="!rla.isActive" 
  [routerLinkActiveOptions]="{exact: true}">Dashboard</a>

exportAs 允许您创建一个模板变量,该变量实际上是您要导出的类的实例。这意味着 rla instanceof RouterLinkActive 将返回 true。

在您的情况下,您可以使用该类的 isActive 属性来检查链接是否处于事件状态。如果是,那么您可以选择使用哪个类。

关于angular - routerLinkActive问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51632669/

相关文章:

javascript - 下载作为二进制/八位字节流的 PNG 文件

css - Bootstrap 4 响应式表格不会占用 100% 的宽度

Jquery - 单击按钮将 html 加载到一个 div 中,但使另一个 div 不可见

twitter-bootstrap - 如何在 Bootstrap 4 中使用不同的字体?

angular - 使用 else 模板自定义 *ngIf 但没有条件 @Input()

Angular 2 - 防止变更检测

html - 引导列?

html - 尝试卡住表头时表头和正文未正确对齐

angular - 输入掩码以允许电话号码?

结构指令中的 Angular 输入绑定(bind)