最近做前端配置化查询页面时,多个查询配置为相同路由对应的同一个页面,只是参数不同,相同页面跳转时,出现了页面不刷新问题。
尝试着在对应位置使用 this.ref.markForCheck(); this.ref.detectChanges(); 也必须滚动滚动条才能驱动页面更新。。调试发现,页面刷新了,有些原始数据已经渲染上去,但ngOnInit()函数没有执行,想着在constructor里面手动触发ngOnInit,但是除此进入时会执行两次ngOnInit。不妥。
之前跳转用的router.navigate,
this.router.navigate([btn.linkUrl], {
queryParams: queryParams
});
最后找到了个好方法,在点击跳转方法里,使用router.navigateByUrl
this.router.navigateByUrl('', {skipLocationChange:true}).then(() => {
this.router.navigate([btn.linkUrl], {
queryParams: queryParams
});
});
完美了解决了问题。。
来研究一下navigate和navigateByUrl的区别吧,我先下班,后续再补。
网友评论