gpt4 book ai didi

angular - 如何以正确的方式在 Angular 8 中重新加载页面

转载 作者:行者123 更新时间:2023-12-04 14:29:47 25 4
gpt4 key购买 nike

注意。我通过谷歌搜索得到了一组结果,但正如我在最后解释的那样,由于多样性,我觉得它们不可靠。

我有两种实用方法 - 一种用于导航到父节点,一种用于重新加载 self.第一个按预期工作,而另一个无法导致重新加载。

navigateToParent(route: ActivatedRoute) {
const options: NavigationExtras = { relativeTo: route };
this.router.navigate([".."], options);
}

navigateToSelf(route: ActivatedRoute) {
this.router.routeReuseStrategy.shouldReuseRoute = () => false;
this.router.onSameUrlNavigation = "reload";
const self = ".";
this.router.navigate([self]);

// const options: NavigationExtras = { relativeTo: route };
// this.router.navigate(["."], options);
}

我跟着回答 here ,唯一的异常(exception)是我希望我的路径导航到通用,而不是硬编码。我试过传递不同的参数,比如 self="。"和 self=""等。似乎没有什么能让我重新加载。

我想念什么?

我还尝试从传递到服务方法的路由中挑选部分,但我只看到一堆可观察的,而不是实际的段。而且,当然, this.router.navigate(route) 只会导致错误。

谷歌搜索产生了很多提示,其中的建议千差万别(例如 this ),这让我怀疑它可能严重依赖于版本(我使用的是 8.0),而且还有很多建议,尽管接受,从长远来看可能具有误导性和危害性,而我没有意识到这一点。

最佳答案

好的,下一个示例适用于我而无需重新加载页面:
在路由器组件上,您必须添加“onSameUrlNavigation”
路由器组件:

@NgModule({
imports: [RouterModule.forRoot(routes, { onSameUrlNavigation: 'reload' })],
exports: [RouterModule],
})
现在要重新加载的组件
constructor(private router: Router){
this.router.routeReuseStrategy.shouldReuseRoute = () => {
return false;
};
}

someFunction(){
this.router.navigateByUrl('/route');
}

关于angular - 如何以正确的方式在 Angular 8 中重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59552387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com