SignInComponentとHomeComponentという2つのコンポーネントがあります。 HomeComponentはWebアプリケーションのデフォルトビューですが、SignInComponent経由でサインインする必要があり、これらのコンポーネントには同じURLのルートがあります。問題は、それらが同じURLを持っているので、それらの間をどのようにナビゲートするのかわかりません。ここに私のアプリ-routing.module.tsファイルは次のとおりです。同じURLのコンポーネントへのルーティング方法
import { Injectable } from '@angular/core';
import { Router, CanActivate } from '@angular/router';
import { AuthenticationService } from '../services/authentication.service';
@Injectable()
export class AuthGuard implements CanActivate {
constructor(private router: Router, private authService: AuthenticationService) { }
canActivate() {
if (this.authService.checkCredentials()) {
return true;
}
this.router.navigate(['']); // The problem is here
return false;
}
}
同じURLである必要がありますか?あなたがこれを不必要に難しくしているようです。 – axlj
私はaxljに同意します。この種のことは、ルートを持っている全体の点に反する。それらが同じルートになければならない場合は、あなたの 'SignInComponent'を' HomeComponent'の中に置き、あなたの 'HomeComponent' tsファイルの中に' authService'を注入し、あなたの 'ngOnInit()'の中にロジックを入れます。 'HomeComponenet'の内容または' SignInComponent' –
私はaxljに同意します。各コンポーネントは単一の目的を持つ必要があります。だからあなたのホームページのための1つのコンポーネントとあなたのサインインのための別のコンポーネントを定義することを検討してください。 – DeborahK