退出我的应用程序时,在路由到我的登录页面期间似乎存在无限循环。几天前,一切似乎都运转良好。这可能是由于Angular或WebPack的错误造成的吗?
以下是一些代码示例:
在app.routing.ts中路由:
{ path: 'login', component: LoginComponent },
路由到登录组件的组件功能
logout() {
this.authGuard.logout();
this.portalsService.announceLoggedIn("");
this.router.navigate(['/login']);
}
一切似乎运行正常,直到logout()的最后一行路由到我的登录页面(router.navigate)。很确定这不是我服务的问题。所有其他路线也都运行得很好,这个问题似乎只是在退出时出现。
以下是用户遇到类似问题的另一个thread on Github。但是他使用的是canActivate()而我并不是这样,我不确定它是否是同一个原因。他提供了一个浏览器的Plunker崩溃,所以检查它可能是有用的,因为它与我在浏览器上的完全相同的体验。小心翼翼,你的浏览器会崩溃lol。
到目前为止,我已经在Chrome和Edge上进行了测试,两者都在注销时崩溃了。大多数时候我必须使用任务管理器来关闭它们。尚未在Mozilla上进行测试,因为我的vendor.js包编译存在问题,可能是一个相关的问题。但它在铬和边缘上的效果非常好。
我不确定究竟是什么问题,因为浏览器崩溃后浏览器崩溃是很难调试的。可能是webpack / angular-cli编译问题。上周这条路线工作得非常好。
其他信息:在VS2017和IIS Express上运行
非常感谢任何输入或分享类似经历。
答案 0 :(得分:0)
我面对类似的情况,在我的情况下是行:this.router.navigate(['/ login'])
导致重新创建另一个组件,在组件的ngOnInit钩子内是对一个服务的调用,该服务在401服务器错误的情况下调用this.router.navigate(['/ login']),导致无限循环和浏览器崩溃。
我希望这会对你有所帮助。
答案 1 :(得分:0)
我也有类似的问题。
设置了一个不符合条件时重定向到另一页的警卫。因此设置循环和浏览器崩溃也具有相同的警戒。
答案 2 :(得分:0)
您在那里传递了错误的参数:
this.router.navigate( ['login'] );
这应该是:
this.router.navigateByUrl( '/login' );
或者,如果您想通过 URL 导航,只需告诉它:
from datetime import datetime
frm = '%H:%M' #format
delta = datetime.strptime(df['wake_time'][row_number], frm) - datetime.strptime(df['sleep_time'][row_number], frm)