gpt4 book ai didi

如果路由到相同的参数, Angular 不会重新加载

转载 作者:太空狗 更新时间:2023-10-29 17:49:18 28 4
gpt4 key购买 nike

我想在每次单击按钮时重新加载页面 article/:id,Angular 能够在 :id 更改时重新加载页面,但是如果路由到相同的 :id,然后它忽略更改。

export class DocumentComponent {
constructor(
private activatedRoute: ActivatedRoute,
private router: Router
) {}

ngOnInit() {
this.routeSubscription = this.activatedRoute.params.subscribe(params => {
this.reloadPage(+params['id']);
});
}

clickReload(id: number) {
this.router.onSameUrlNavigation = 'reload';
this.router.navigate(['article', id]);
}
}

当参数改变时,会触发可观察的params,并执行reloadPage()。但是,当我尝试重新加载相同的 params 时,Angular 会忽略它,我如何才能重新加载相同的 param

article/123 --> article/456 [ok]
article/111 --> article/222 [ok]
article/666 --> article/666 [not ok, how?]

我尝试使用 onSameUrlNavigation,但它不起作用...我做错了什么吗?

最佳答案

您需要检查 id 是否相同,然后重新加载页面。你可以这样做:

clickReload(id: number) {
if(id == this.activatedRoute.snapshot.params.id) {
window.location.reload(); //if id is same then just reload the page
} else {
this.router.navigate(['article', id]);
}
}

关于如果路由到相同的参数, Angular 不会重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52071586/

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