【发布时间】:2017-09-12 11:31:06
【问题描述】:
我有一个特殊情况,我需要重定向到一个 url 并重新加载。
我在路由器上使用这个方法:
this.router.navigateByUrl('login');
this.reload();
其中this.reload() 是在角度区域之外工作以强制重新加载页面的函数。我需要强制重新加载,因为我无法控制来自服务器的某些资产。
reload的代码是:
public reload(): any {
return this.zone.runOutsideAngular(() => {
location.reload()
});
}
问题是:
我在开始时导航到登录,然后重新加载页面,这是默认行为。
所需输出:
只需导航而不渲染组件并重新加载,就像当我们点击一些未经授权的 URL 时,我们会被重定向到大多数网站的登录页面。
【问题讨论】:
-
您可以跳过
navigateByUrl,而是替换窗口的location属性:location.replace('myUrl'); -
它只会重新加载更多并且不会改变路由的url。