2017-01-03 22 views
1

網址如何獲得請求的URL中後衛服務如何獲得請求中後衛角2

HasPermissionService

@Injectable() 
export class HasPermissionService implements CanActivate{ 
    private permissions = []; 

    constructor(private _core:CoreService,private route1:Router, private _route:ActivatedRoute ,private route: ActivatedRouteSnapshot,private state: RouterStateSnapshot) { 
    console.log('constructor calling ...'); 
    // console.log(this.route.url); 
    this.permissions = this._core.getPermission(); 
    console.log('inside guard'); 
    console.log(this.permissions); 
    } 

    canActivate() { 
    console.log(this.route); 
    console.log(this._route); 
    return true; 
    } 
} 

,但我老了網址,從中我來自哪裏。如何獲取當前的網址?

路線

{path:'grade-listing',component:GradeListingComponent,canActivate:[HasPermissionService]} 

我需要 '級,掛牌'

+0

添加您的console.log在的setTimeout(()=> {的console.log(this.route)},0); – JSNinja

回答

4

canActivate功能ActivatedRouteSnapshotRouterStateSnapshot通過作爲參數傳遞:

@Injectable() 
export class HasPermissionService implements CanActivate { 

    private permissions = []; 

    constructor(private _core: CoreService) { 
    this.permissions = this._core.getPermission(); 
    } 

    canActivate(
     route: ActivatedRouteSnapshot, 
     state: RouterStateSnapshot 
    ): Observable<boolean>|Promise<boolean>|boolean { 
     //check here 
    } 
} 

你應該從那裏開始查看哪條路線正在啓動

CanActivate

+0

我應該需要發送任何路由文件也 – Ash

+0

不,這一切都在內部處理。查看實現的文檔 – PierreDuc