我知道有很多类似的问题,但是我没有找到我需要的东西。
在我的应用程序中,我需要存储用户的登录\注销时间。如果用户手动注销也可以,但是他只需关闭窗口或浏览器即可。
我发现Angular中有一个window.onClose()
函数,但是我不知道该在哪里使用。
会出现在每个组件中吗?还是在根组件中?而且,最适合我的情况的解决方案是什么?
答案 0 :(得分:0)
现代浏览器中没有关闭事件,但是有一个onbeforeunload,尽管您不能做很多事情,但我认为它足以供您使用
这是一个javascript功能,因此您可以将其放置在任何地方,使用root组件会更好,您可以做的就是将关闭时间缓存在本地存储中,如下所示:
window.onbeforeunload = function(){
localstorage.setItem("closeTime", new Date().getTime())
};
我不确定是否可以发送HTTP请求,这有什么限制,但是该示例有效,如果需要,您可以在下次打开应用程序时从localstorage中获取该项目
答案 1 :(得分:0)
您能否在路由配置中尝试canDeactive
。
@NgModule({
imports: [
RouterModule.forRoot([
{
path: 'team/:id',
component: TeamCmp,
canDeactivate: ['canDeactivateTeam']
}
])
],
providers: [
{
provide: 'canDeactivateTeam',
useValue: (component: TeamComponent, currentRoute: ActivatedRouteSnapshot, currentState:
RouterStateSnapshot, nextState: RouterStateSnapshot) => true
}
]
})
class AppModule {}