angular2中让路由链接保持激活状态

ng2中,可以通过

template: `
  <h1>Angular Router</h1>
  <nav>
    <a routerLink="/crisis-center" routerLinkActive="active">Crisis Center</a>
    <a routerLink="/heroes" routerLinkActive="active">Heroes</a>
  </nav>
  <router-outlet></router-outlet>
`

给激活的路由绑定动态class,通过设置class样式即可设置激活的路有链接的样式。
但是当页面跳到其他路由(上面两个以为的其他路由),两个路由链接都不处于激活状态,失去class样式。

不过可以通过RouterLinkActive特性让路由链接保持激活状态
RouterLinkActive指令会基于当前的RouterState对象来为激活的RouterLink切换CSS类。 这会一直沿着路由树往下进行级联处理,所以父路由链接和子路由链接可能会同时激活。 要改变这种行为,可以把[routerLinkActiveOptions]绑定到{exact: true}表达式。 如果使用了{ exact: true },那么只有在其URL与当前URL精确匹配时才会激活指定的RouterLink。
所以只要通过设置父子路由即可。

符:路有链接传参方式:

<nav class="app_nav">
        <div *ngFor="let item of currentUser?.frontSet;let last = last;" [isLast]="last" (lastDone)="initVav()">
            <a [routerLink]="item.code" [queryParams]="{userName : currentUser.name}" routerLinkActive='active'>
                  {{item.moduleName}}
            </a>
        </div>
    </nav>

下一篇讲到的动态路由替代方案也会用到这段代码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,013评论 19 139
  • 22年12月更新:个人网站关停,如果仍旧对旧教程有兴趣参考 Github 的markdown内容[https://...
    tangyefei阅读 35,482评论 22 257
  • 版本:4.0.0+2 有一些英雄指南应用的新需求: 添加一个仪表盘 视图。 添加在英雄 视图和 仪表盘 视图之间导...
    soojade阅读 1,482评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,094评论 25 708
  • 我睁开眼的时候,蛐蛐在叫,花在打呼,草在伸懒腰,月亮眯着眼在笑。我不喜欢晚上,那么美的一切,都在晚上睡着了,我也不...
    一盒车厘子阅读 372评论 0 3

友情链接更多精彩内容