我有一个位于路由器外部的导航组件,它利用了一个可重复使用的图标组件,该组件依赖于绝对URL指向SVG图标,该图标通过该组件内的getter进行检索:
public get absUrl(): string {
return window.location.href.split('#')[0];
}
不幸的是,重定向后,视图未使用新的Abs网址进行更新。
我已经使用setTimeout进行了变通,但是它的超级技巧-纯粹是为了证明链中存在一些延迟,这会导致问题,最终window.location.href
的值是正确的。
这是解决方法:
public absUrl = window.location.href.split('#')[0];
ngAfterViewInit() {
setTimeout(() => {
this.absUrl = window.location.href.split('#')[0];
this.ref.detectChanges();
}, 200);
}
有人对如何正确实施这一想法有任何想法吗?我的直觉是,如果您要加载受保护的路由,则与第一次加载应用程序有关。
我有一个位于路由器外部的导航组件,它利用了可重复使用的图标组件,该组件依赖于绝对URL指向SVG图标,该图标通过getter检索...
我想您可以使用Location
服务执行以下操作: