[解決済み] Angular 2 - ルーティング - ObservableでCanActivateする。
2022-12-13 07:13:26
質問
私は AuthGuard (ルーティングに使われる) を実装しており CanActivate .
canActivate() {
return this.loginService.isLoggedIn();
}
私の問題は、CanActivate-result が http-get-result - に依存していることです。 ログインサービス は オブザーバブル .
isLoggedIn():Observable<boolean> {
return this.http.get(ApiResources.LOGON).map(response => response.ok);
}
CanActivateをバックエンドの状態に依存させるにはどうしたらよいでしょうか?
# # # # # #
EDIT: この質問は2016年のものであることに注意してください - 非常に初期の段階のangular/routerが使用されています。
# # # # # #
どのように解決するのですか?
angular/router を最新のものにアップグレードする必要があります。
AuthGuard.tsを修正します。
@Injectable()
export class AuthGuard implements CanActivate {
constructor(private loginService: LoginService, private router: Router) {}
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
return this.loginService
.isLoggedIn()
.map((e) => {
if (e) {
return true;
}
})
.catch(() => {
this.router.navigate(['/login']);
return Observable.of(false);
});
}
}
わからないことがあったら聞いてね
関連
-
[解決済み] Angular HTMLバインディング
-
[解決済み] Angular:*ngClassを使った条件付きクラス
-
[解決済み] BehaviorSubjectとObservableの違い?
-
[解決済み] モジュール "@angular-devkit/build-angular" が見つかりませんでした。
-
[解決済み】Angularでルート変更を検出する方法は?
-
[解決済み] Angular2でNgForがPipeでデータを更新しない。
-
[解決済み] trackBy` と `ngFor` の使い方
-
[解決済み] ルーターナビゲートで同じページのngOnInitを呼び出さない
-
[解決済み] Angular / Angular Materialでmat-horizontal-stepperのステップをプログラムで移動させることは可能ですか?
-
[解決済み] Angular v5からAngular v6にプロジェクトをアップグレードしたい。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] プロパティ 'catch' はタイプ 'Observable<any>' に存在しません。
-
[解決済み] Angular 4+ ngOnDestroy() サービス中 - observableを破壊する
-
[解決済み] Angular / Angular Materialでmat-horizontal-stepperのステップをプログラムで移動させることは可能ですか?
-
[解決済み] FormGroupから単一の値を取得する方法
-
[解決済み] AngularでFormGroupに動的にaddControlを追加する
-
[解決済み] angular-cli が HTTPS で ng serve するようにする。
-
[解決済み] FormGroupとFormArrayの使い分けは?
-
[解決済み] プロパティ 'controls' がタイプ 'AbstractControl' に存在しない Angular 4 [duplicate] 。
-
[解決済み] Angular2のテーブル行をコンポーネント化
-
[解決済み] 角度の2つのスイッチケース値