在Angular中,如何检查相对路线的路线是否处于活动状态?
我导航到组件代码中相对于当前路由的路由,如此代码段中所示在Angular中,如何检查相对路线的路线是否处于活动状态?,angular,angular-routing,angular6,Angular,Angular Routing,Angular6,我导航到组件代码中相对于当前路由的路由,如此代码段中所示 this.router.navigate([item.route], {relativeTo: this.route}); 如何检查当前路由在HTML中是否处于活动状态以应用高亮显示样式。目前,我正在使用以下内容,它不适用于相对路线 <a [ngClass]="{'active': item.route ? router.isActive(item.route, true): false"> {{item.displayNa
this.router.navigate([item.route], {relativeTo: this.route});
如何检查当前路由在HTML中是否处于活动状态以应用高亮显示样式。目前,我正在使用以下内容,它不适用于相对路线
<a [ngClass]="{'active': item.route ? router.isActive(item.route, true): false">
{{item.displayName}}
</a>
{{item.displayName}
我就是这样让它工作的。如果有更好的解决方案,请随时加入
<a [ngClass]="{'active': item.route
? router.isActive(router.createUrlTree([item.route], {relativeTo: route}).toString(), true)
: false">
{{item.displayName}}
</a>
{{item.displayName}
您可以像这样将函数放入组件中:
isActive(): boolean {
return router.isActive(router.createUrlTree([item.route], {relativeTo: route}).toString(), true);
}
然后,您可以在模板中编写以下内容:
<a [ngClass]="{'active': isActive() }">{{item.displayName}}</a>
{{item.displayName}
您是否尝试添加routerLinkActive=“active”
属性?是的,我尝试过,但它不起作用。如果我使用硬编码的相对URL,比如router.isActive('someURL\'+item.route,true)
它会工作。显然我不想硬编码相对URL,否则在this.router.navigate(…)中使用{relativeTo:this.route}
选项是毫无意义的代码>。为什么此处需要createUrlTree??您是如何找到此解决方案的???createUrlTree(…)
用于获取相对于当前路由的完整URL。我曾经使用过这个解决方案。除了将我的解决方案复制粘贴到组件代码中,您的解决方案还有什么不同?