ngrx/routerを使用しています。
ログインが必要なLoginGuard
ページを開くと、LoginGuard runs beforeisSignedIn
がtrueに設定されています。だからその時isSignedIn
はundefined
。
@Injectable()
export class LoginGuard implements Guard {
constructor(private _router: Router, private _userService: UserService) { }
protectRoute({ route, params, isTerminal }: TraversalCandidate): Observable<boolean> {
return this._userService.checkSignedIn()
.map(isSignedIn => {
if (!isSignedIn) {
this._router.replace('/landing');
return false;
} else {
return true;
}
}).first();
}
}
アプリの最初に設定isSignedIn
しましたが、これは頭の中で最も早い場所です。true
class App implements OnInit {
ngOnInit() {
// I set isSignedIn in UserService to true here after I got user info from the server
}
}
でもまだ早いかも?では、 GuardisSignedIn
が実行されるtrue
前にどのように設定できますか? ありがとう