2016-12-21 22 views
3

承認のために角2ガード(canActivate)を使用していますが、ユーザーが許可なしブランク画面を持たないルートに移動した場合ユーザーにメッセージを表示する方法がガードによって角度2で許可されていない

このような許可がないというメッセージを表示したいのですが、どうすれば可能ですか?

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

なぜ 'canActivate'は常にtrueを返すのですか? –

+0

それはちょうどガードが働いているかどうかを確かめている、確かにそれは真実か偽か論理から来る – Ash

答えて

1
canActivate(){ 
    if(yourcondition == true){ 
     return true; 
    } else { 
     this.router.navigate(['/yourRoutetoErrorHtml']); 
     return false; 
    } 
    } 

そのような何か?

+1

私はリダイレクトしたくない、私はそのユーザーshoudがあなたの管理者にこのようなあなたの管理者に確認してください – Ash

+0

あなたは '' 'alert( 'No Authorization!');' ''のようなものか、material2(https://github.com/angular/material2)をインストールし、snackbar/toastコンポーネント –

0

あなたにはいくつかのオプションがあります。

1)ルータを使用して、作成したコンポーネントに移動します。error/login-required。このページには、必要に応じて簡単なHTMLメッセージが表示されます。

- https://auth0.com/blog/angular-2-authentication/を参照してください。また、router.navigateを使用してユーザーをログインページに戻す方法についても説明します。

2)モーダルを表示できます。

良い、シンプル、モデルライブラリ - https://github.com/shlomiassaf/angular2-modal

関連する問題