0

当用户通过单击导航栏模块上的链接更改路线时,我在获取 url 的当前路径时遇到了一些问题。每次用户点击导航模块上的路由链接时如何获取当前 url 路径。我需要在 navigation.ts 脚本上获取它。我现在有什么: 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 次。我正在研究角度 6

4

1 回答 1

3

因为路由器会受到几个事件的影响。

尝试过滤最后一个事件,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';
于 2018-11-27T10:31:14.160 回答