这次给大家带来angular+RouterLinkActive实现路由高亮功能详解,angular+RouterLinkActive实现路由高亮的注意事项有哪些,下面就是实战案例,一起来看一下。
路由高亮是什么?有什么好处?
当你在做一个后台管理系统,左边是一排路由导航,点击可以进入不同的页面,那么这个路由所在dom元素会添加上样式表示当前是位置。
但是一刷新你会发现,这个样式没了…
怎么办?
采用路由高亮:当路由被激活时允许你添加一个class在你添加路由的dom元素上,只有url变化时才会移除此样式。
当前路由被激活或者当前路由处于激活状态表示页面的url中路由和当前dom标签里的路由想匹配。
// 用法概览@Directive({ selector: '[routerLinkActive]', exportAs: 'routerLinkActive'})class RouterLinkActive implements OnChanges, OnDestroy, AfterContentInit { constructor(router: Router, element: ElementRef, renderer: Renderer2, cdr: ChangeDetectorRef) links: QueryList linksWithHrefs: QueryList get isActive: boolean routerLinkActiveOptions: {...} set routerLinkActive: string[] | string ngAfterContentInit(): void ngOnChanges(changes: SimpleChanges): void ngOnDestroy(): void}
登录后复制
示例
.red{ color: red;}
登录后复制
login
登录后复制
当url是user或者/user/login的时候,a标签将会被加上classred。当url变化为别的时,class将会被移除。
如何添加两个class?
login
登录后复制
routerLinkActive的两种写法
loginlogin
登录后复制
也可以给routerLinkActive进行配置参数
传递exact: true表示路由完全匹配时才高亮,如
复制代码 代码如下:
login
你还可以使用isActive检查当前是否路由处于激活状态
login {{ rla.isActive ? '激活' : '未激活'}}
登录后复制
如果当前路由处于激活状态,则会显示:login 激活
非激活状态
login 未激活
上述的 rla 为routerLinkActive缩写,它可以随便定义。
重点来了: 你可以在使用routerLink元素的父元素上使用RouterLinkActive指令
是不是给每个路由都分别添加样式好费事?给它父元素添加上路由高亮指令即可解决问题!
登录后复制
只要给a标签的父元素p添加上routerLinkActive和routerLinkActiveOptions, 当路由是/user/login或/user/reset时其所在dom元素分别被添加上red样式。 这里需要注意的是要添加上routerLinkActiveOptions指定完全匹配,不然会出现url为user时两个路由均被匹配上添加了red样式。
相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!
推荐阅读:
如何使用Vue实现PopupWindow组件
如何操作jQuery实现电子时钟效果
以上就是angular+RouterLinkActive实现路由高亮功能详解的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2751701.html