2017-08-14 32 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

相关问题