【问题标题】:When a link is clicked, make another link active- angular单击链接时,使另一个链接处于活动状态-角度
【发布时间】:2018-05-05 11:39:37
【问题描述】:

我有一个包含这些元素的侧边栏:

<ul class="nav nav-pills flex-column">
      <li class="nav-item collapsed side" data-toggle="collapse" data-target="#home" >
          <a class="nav-link"  routerLinkActive="active" routerLink="/home" [routerLinkActiveOptions]="{exact: true}">Home </a> </li>
     <ul class="sub-menu collapse" id="home">

          <li class="nav-item list-unstyled"><a class="nav-link"  routerLinkActive="active"  routerLink="/home/submenu1">Submenu1</a></li>
          <li class="nav-item list-unstyled"><a class="nav-link"   routerLinkActive="active"  routerLink="/home/submenu2">Submenu2</a></li>

      </ul>


      <li class="nav-item side">
          <a class="nav-link"  routerLinkActive="active" routerLink="/contact">Contact</a>
      </li>

  </ul>

单击 Submenu1 时,我希望将 Home 设置为活动状态,以便在链接处于活动状态时使用我申请的 css。 我如何在 Angular5 中做到这一点? 谢谢你。

【问题讨论】:

  • 请发布您到目前为止所尝试的内容

标签: angular angular5


【解决方案1】:

使用ngClass 并在您的组件中有代码来检查路由是否是主路由的一部分。例如:

let isHomeActive = Router.url.startsWith("/home/");
this.homeClasses = {
    "active": isHomeActive,
    "nav-link": true
}

<a [ngClass]="homeClasses"  routerLinkActive="active" routerLink="/home" [routerLinkActiveOptions]="{exact: true}">Home </a> </li>

【讨论】:

  • 嘿!太感谢了!不过,有一个问题,在构造函数上,我导入了 Router `private router:Router`。而当我在其上编写 let isHomeActive... 代码时,在 this.homeClasses 上我得到的属性在 AppComponent 中不存在
猜你喜欢
  • 2022-12-31
  • 1970-01-01
  • 2012-07-19
  • 2020-06-04
  • 1970-01-01
  • 1970-01-01
  • 2014-10-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多