我正在尝试使用routerLink从一个页面重定向到另一页面,但是重定向的链接不会触发ngOnInit()方法以及ActivatedRoute订阅。重定向的页面随后冻结,但控制台上没有错误。
这是我的HTML
<a [routerLink]="route(value.id)">link</i></a>
然后这是我的component.ts,它返回url
route = (id: number) => this.routeService.view(id);
这是重定向的组件edit.ts
ngOnInit() {
this.route.paramMap.pipe(
takeUntil(this.onDestroy$),
map(params => console.log(params))
).subscribe(x => 'do something')
}
答案 0 :(得分:1)
我做了一些小小的尝试,我使用了NgZone。 routerLink
指令似乎在Angular区域之外运行。因此,我使用了[routerLink]="route(value.id)"
而不是使用(click)="route(value.id)"
。这就是现在的样子
HTML:
<a (click)="route(value.id)">link</i></a>
组件:
constructor(private ngZone: NgZone){}
route = (id: number) {
const link = this.routeService.view(id);
this.ngZone.run(() => this.router.navigate(link));
}
感谢您的回复。