Angular 可以使用模式/选择器激活
我目前正在处理一个应用程序的身份验证服务。此服务使用后端生成的令牌。现在,如果令牌过期,它会将用户重定向到登录页面;但是,我想实现一个解决方案,它不重定向用户,而是调用一个登录模式,用户将在其中放置其信息。 下面是当前代码的一个片段Angular 可以使用模式/选择器激活,angular,canactivate,Angular,Canactivate,我目前正在处理一个应用程序的身份验证服务。此服务使用后端生成的令牌。现在,如果令牌过期,它会将用户重定向到登录页面;但是,我想实现一个解决方案,它不重定向用户,而是调用一个登录模式,用户将在其中放置其信息。 下面是当前代码的一个片段 从'@angular/core'导入{Injectable}; 从'@angular/Router'导入{Router,CanActivate}; 从“/authentication.service”导入{AuthenticationService}; @可注射()
从'@angular/core'导入{Injectable};
从'@angular/Router'导入{Router,CanActivate};
从“/authentication.service”导入{AuthenticationService};
@可注射()
导出类AuthGuard实现了CanActivate{
构造函数(专用路由器:路由器,专用身份验证服务:身份验证服务){
}
canActivate(){
试一试{
if(this.authenticationService.loggedIn()){
返回true;
}
}捕获(错误){
console.log(错误);
}
this.router.navigate(['/login']);
返回false;
}
}
我有另一个具有登录模式的组件
@组件({
选择器:“登录模式”,
templateUrl:'./login modal.component.html',
样式:[]
})
基本上,我想做的是更改this.router.navigate(['/login'])
的用法,使用选择器:“登录模式”
切换到LoginModalComponent
。
如何更改CanActivate
方法以调用LoginModalComponent
我看到了一个解决这个问题的方法,它使用bootstrap4;但是,我的应用程序使用Bootstrap 3,因此我无法实现它。您有一些选择,但这里有一些建议:
- 导航到另一个页面,以打开登录名并挂起要从中导航的页面
- 拥有一个模式服务,该服务接收登录组件中的信息,并向route guard返回承诺或可观察的信息
- 具有应用程序级别的登录模式和从route guard打开的服务