簡體   English   中英

Angular 2 canActivate:在組件中檢索值

[英]Angular 2 canActivate : retrieve value in component

如何從組件內部獲取路由的canActivate參數的值?

{
    path: "dashboard",
    component: DashboardComponent,
    canActivate: [AuthGuard] // => This one
}

我問這是因為我想顯示/隱藏模板中的元素,取決於用戶是否連接。

因此,就目前而言,我正在組件內部調用身份驗證服務,但隨后它將進行兩次調用,一個來自守護程序,另一個來自組件。

ngOnInit() {
    this.authService.canAccess().then(
        auth => this.canAccess = auth
    );
}

有沒有辦法訂閱一些路由事件並獲取canActivate屬性的值?

也許使用解析器? 在獲取一些數據之前,它不會啟動組件

{
    path: 'path',
    component: SomeComponent,
    resolve: {someVarYouNeed: someResolver}
}

class someResolver implements Resolve

constructor (private service: MyService) {
    return service.getData.map(data => data.json())
}

在您的組件中:

ngOnInit() {
    this.varYouNeed = this.route.snapshot.data['someVarYouNeed'];
}

請記住,解析程序應返回Observable,並且此Observable中的數據將根據路由中解析程序中使用的名稱作為屬性附加到路由數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM