如何向用户显示消息并没有在Angular 2中由警卫使用

时间:2016-12-21 11:18:44

标签: angular

我使用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]},

2 个答案:

答案 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