Routerlinkactive在Angular 8中的页面加载时不适用于动态生成的路由
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Routerlinkactive在Angular 8中的页面加载时不适用于动态生成的路由相关的知识,希望对你有一定的参考价值。
我有一个使用Angular 8构建的应用程序。Routerlinkactive
最初并未在动态生成的路线上激活,但是当我单击同一模块中的其他链接并返回时,它就可以工作。routerLinkActive
设置在UserComponent
中,当基于url params加载子项(UserProfileComponent
)时,它应激活导航中的锚点。
例如,我尝试了许多解决方案,例如使用模板变量
[routerLinkActive]="['']" [ngClass]="rla.isActive ? 'mat-accent' : 'mat-primary'" #rla="routerLinkActive"
或应用[routerLinkActiveOptions]="exact:true"
,但没有一个有用。
这是我的html代码的最新版本。
<ul role="list" class="list-horizontal"> <li> <a class="mat-primary" routerLinkActive="mat-accent" [routerLink]="'/user/profile/' + profile?._id" mat-raised-button>Profile </a> </li> <li> <a class="mat-primary" [routerLink]="'/user/posts/'" [routerLinkActive]="['mat-accent']" mat-raised-button>Posts</a> </li> <li> <a class="mat-primary" [routerLink]="'/user/favorite-posts/'" [routerLinkActive]="['mat-accent']" mat-raised-button>Favourites</a> </li> </ul>
我猜问题出在动态生成的路由(基于用户ID)中,
例如http://my-domain/user/profile/5dd58c41409cccea2c9296f3
,因为当我直接访问其他组件时,例如http://my-domain/user/posts
,则routerLinkActive
可以将active
类设置为相应的链接。这就是我为当前模块配置路由的方式。
const routes: Routes = [ path: '', component: UserComponent, children: [ path: 'profile/:id', component: UserProfileComponent , path: 'posts', component: UserPostsComponent , path: 'favorite-posts', component: UserFavoritePostsComponent ] ];
任何提示都值得赞赏。谢谢!
我有一个使用Angular 8构建的应用程序。Routerlinkactive在开始时并未在动态生成的路由上激活,但是当我单击同一模块中的其他链接并返回时......>
我决定在所选元素上设置mat-accent
(活动)类,并从同级元素中删除该类。这个技巧是在ngClass
指令的帮助下完成的。
以上是关于Routerlinkactive在Angular 8中的页面加载时不适用于动态生成的路由的主要内容,如果未能解决你的问题,请参考以下文章
Routerlinkactive在Angular 8中的页面加载时不适用于动态生成的路由
是否可以用 routerLinkActive 替换一个类,而不仅仅是添加一个类?