在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。我曾经使用过这个解决方案。除了将我的解决方案复制粘贴到组件代码中,您的解决方案还有什么不同?