我使用Angular 2 guard(canActivate)进行授权, 但是如果用户去了他没有授权的路线,则空白屏幕已经来了..
我想显示一条消息,表明你没有获得这样的许可,如何实现?
guardService:
import { Injectable } from '@angular/core';
import { CanDeactivate , CanActivate } from "@angular/router";
@Injectable()
export class LoginGuardService implements CanActivate,CanDeactivate<any>{
constructor() { }
canActivate(){
return true;
}
canDeactivate(){
return window.confirm("You have unsaved changes. Still want to leave?");
}
}
路由文件
{path:'grade-listing' , component:GradeListingComponent ,canActivate:[LoginGuardService]},
答案 0 :(得分:1)
canActivate(){
if(yourcondition == true){
return true;
} else {
this.router.navigate(['/yourRoutetoErrorHtml']);
return false;
}
}
类似的东西?
答案 1 :(得分:0)
你有几个选择。
1)使用路由器将它们导航到您创建的组件error/login-required
。该页面将根据需要提供简单的html消息。
请参阅 - https://auth0.com/blog/angular-2-authentication/以及他们如何使用router.navigate将用户发送回登录页面。
2)你可以显示一个模态。
一个好的,简单的模型库 - https://github.com/shlomiassaf/angular2-modal