【发布时间】:2019-02-03 21:31:36
【问题描述】:
我想在每次单击按钮时重新加载页面 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,但它不起作用......我做错了什么吗?
【问题讨论】:
-
您究竟为什么希望它重新加载 BTW?
activatedRoute.params是一个 BehaviorSubject,它只在新值发生变化时推送它。由于id没有变化,因此不会触发变化。
标签: angular