Angular 使路由器链接在两个不同的路由上处于活动状态

Angular 使路由器链接在两个不同的路由上处于活动状态,angular,Angular,在angular中,如何在两个不同的路由上激活routerlink。i、 e <li routerLinkActive="active"><a routerLink="dashboard">Dashboard</a></li> 仪表板 当“dashboard”(仪表板)为路线时,样式将处于活动状态。有没有一种方法可以让同一个链接在不同的url(例如“home”)上保持活动状态?因此,我找到了一种解决方案,适用于任何想做同样事情的人。我不能保证这

在angular中,如何在两个不同的路由上激活routerlink
。i、 e

<li routerLinkActive="active"><a routerLink="dashboard">Dashboard</a></li>
仪表板

当“dashboard”(仪表板)为路线时,样式将处于活动状态。有没有一种方法可以让同一个链接在不同的url(例如“home”)上保持活动状态?

因此,我找到了一种解决方案,适用于任何想做同样事情的人。我不能保证这是最有效的解决方案。我使用如下路由器检查url路径:

isDashboard: boolean;
ngOnInit() {
    this.router.events.filter(event => event instanceof NavigationEnd)
        .subscribe((event: NavigationEnd) => {
            if(event.url.includes('home')) {
                this.isDashboard = true;
            }
            else this.isDashboard = false;
        });
}

然后在链接上添加
[class.active]=“isDashboard”
,并将属性保留为我问题中链接上的属性(您可以在此处添加任何您喜欢的链接)。完成任务,但我想找一个不那么紧张的解决方案,最好只能在DOM中实现。

我想我可以使用ngClass并在组件中对url进行快照,如果快照包含我感兴趣的链接,则有条件地应用“active”类。看看这个问题:其实不一样。我不想同时打开这两个组件。只需将路由器链接设置为在多条路由上处于活动状态。因此,样式设置依赖于两条路由,但routerlink只有一个重定向?@JonasPraem更正我在下面的回答中提出了一个解决方案,我认为可能有一个更“内置”的解决方案,但可能没有。