0
在我的示例Angular 2應用程序中,我使用ngrx/store來實現redux設計模式。從CanActivate後臺使用store.dispatch
我已經實現CanActivate後衛在我的應用程序,下面是相關的代碼
canActivate(route: ActivatedRouteSnapshot, router: RouterStateSnapshot): Observable<boolean> {
this.store.dispatch(canActivate());
// HOW TO RETURN value ??
}
及以下的相關行動
export function canActivate(): Action {
$.blockUI();
return {
type: UserActionTypes.CAN_ACTIVATE,
payload:{}
}
}
export function canActivateSuccess(canActivateResponse: any): Action {
$.unblockUI();
return {
type: UserActionTypes.CAN_ACTIVATE_SUCCESS,
payload: canActivateResponse.data
}
}
而且下面是相關的減速碼
....
case UserActionTypes.CAN_ACTIVATE_SUCCESS:
return Object.assign({}, action.payload);
.....
及以下是相關效果代碼
@Effect() canActivate$ = this.actions$
.ofType(UserActionTypes.CAN_ACTIVATE)
.switchMap(
(action) => this.userService.canActivate()
.map(response => canActivateSuccess)
);
我的問題是,canActivate後衛應該返回可觀察布爾的,但是否返回true或false,將僅限於canActivateSuccess功能/動作是已知的,在這種情況下,我應該如何返回從canActivate後衛的值。