2017-08-14 31 views
0

我有這個問題,我必須等到我的身份驗證服務器返回我的身份驗證服務器才能調用我的apis,但我想知道是否有一種很好的方式可以等到我的在分派LoadMyStuffFromApi之前,authState.token是非空值。ngrx:只有在發生LoggedInAction時才轉到網址

我有兩個解析器:

LoginResolver:

public resolve(route: Activate...): Observable<Action> { 
    this.store.dispatch(new LoginAction()); 
    return this.actions$.ofType(LOGGED_IN_ACTION).take(1); 
} 

MyDataLoadedResolver:

public resolve(route: Activate...): Observable<Action> { 
    this.store.dispatch(new LoadDataAction()); 
    return this.actions$.ofType(DATA_LOADED_ACTION).take(1); 
} 

我的路由器則有

{ 
    path: ':caseId', 
    component: CaseViewerComponent, 
    resolve: { login: LoginResolver, loadCase: MyDataLoadedResolver} 
} 

有沒有爲我圍的方式t直到登錄解析程序在執行loadCase解析程序之前完成,或者你會以不同的方式執行此操作嗎?

回答

1

在商店中,您可以設置一個名爲loggedIn = false的默認值變量。在您正在進行API調用的地方,您可以訂閱loggedIn上的更改,只有在登錄成爲true時才運行它們

+0

謝謝!這就是我最終做的:) – Magnusev

相關問題