所以我想在导航到特定路线后重新加载应用程序。
我使用router.navigate根据用户角色导航到某些路由,效果很好,但是如果来自登录页面(并非每次用户打开该特定路由),我必须在路由后重新加载页面-并在此处重新加载是根据用户的语言来更新页面语言
所以我想做的是
else if(this.sp.role === 'Admin') {
console.log('ooo')
this.router.navigate(['/admin/dashboard']);
this.window.location.reload();
但是会重新加载登录页面
答案 0 :(得分:4)
您可以做的是将重载逻辑转移到需要重载的实际组件上。您可以订阅NavigationEnd事件,然后检查您来自的路线,例如
this.router.events
.pipe(
filter(value => value instanceof NavigationEnd),
)
.subscribe(event => {
if (event.url === 'http://mypreviousUrl.com') {
this.window.location.reload();
}
});
答案 1 :(得分:2)
简单
this.router.navigate(['path/to'])
.then(() => {
window.location.reload();
});