【发布时间】:2021-05-08 10:03:33
【问题描述】:
在初始加载 Angular 应用时,router.url 始终指向主页 URL ('/')。 即使我使用域/某些路由打开应用程序,路由 url 也是'/'。
代码如下:
构造函数(私有路由器:路由器){}
ngOnInit() {
console.log(this.router.url);
setTimeout(() => {
console.log(this.router.url);
}, 100);
}
超时(100 毫秒)后,URL 正确。
在预览时将其加载为初始路径:https://angular-epv4wn.stackblitz.io/home 并检查控制台。
SetTimeout 是解决方法,但我不想依赖它。
【问题讨论】:
-
NavigationEnd你需要像在这个演示中一样检测这个事件stackblitz.com/edit/angular-ime53m?file=src/app/… -
这可行,但它适用于每次路线更改。我只需要初始加载 url。
-
在 pipe() 中过滤后使用 take(1)。它会在第一次发出后自动取消订阅 observable