如何根据路线添加class | Angular 6

How to add class depending on route | Angular 6

当用户通过单击导航栏模块上的 link 更改路线时,我在获取 url 的当前路径时遇到了一些问题。每次用户单击导航模块上的路线 link 时如何获取当前 url 路径。我需要在 navigation.ts 脚本上获取它。我现在拥有的是: 技术人员:

constructor(private router: Router, private route: ActivatedRoute) {
  this.router.events.subscribe(res => {
    if (this.router.url == "/buy") {
      this.navExpand = true;
    }

    else {
      this.navExpand = false;
    }
  });
}

有效,但每次循环8次。我正在研究 angular 6

因为路由器受多个事件的影响。

尝试过滤最后一个事件,NavigationEnd

  this.router.events.pipe(
    filter(event => event instanceof NavigationEnd)
  ).subscribe(res => {
    if (this.router.url == "/buy") {
      this.navExpand = true;
    }

    else {
      this.navExpand = false;
    }
  });

进口:

import { filter} from 'rxjs/operators';
import { NavigationEnd } from '@angular/router';