当用户通过单击导航栏模块上的链接更改路由时,获取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
答案 0 :(得分:0)
因为路由器会遇到多个事件。
尝试过滤上一个事件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';