そのようにルーティングを設定しました。ユーザーが http://localhost:3000 にアクセスすると、Home コンポーネントをロードしようとします。ただし、ユーザーがログインしていない場合は、ユーザーをログイン コンポーネントにリダイレクトします。
@Component({
moduleId: module.id,
selector: 'app',
templateUrl: 'app.component.html',
styleUrls: ['app.component.css'],
directives: [ROUTER_DIRECTIVES],
providers: [UserService]
})
@Routes([
{path: '/', component: HomeComponent},
{path: '/login', component: LoginComponent}
])
export class App implements OnInit {
title: string = 'App Component';
constructor(private router: Router) {}
ngOnInit() {
}
}
その時点までは正常に動作しています。問題ない。
ユーザーがログインすると、ユーザーをホーム コンポーネントにリダイレクトします。
しかし、URL http://localhost:3000/comp1で/ comp1を読み込もうとすると、第 2 レベルを見て、「ホーム コンポーネント」の下ではなく、ホームおよびログイン コンポーネントと一緒に /comp1 を見つけようとし、エラーをスローします。ルート '/comp1' が見つかりません。
あいまいな問題であることは理解しています。私のホームURLは「/」だからです。しかし、ホーム コンポーネントがアプリのルート レベルにあることはよくあることであり、ホーム コンポーネントのルート URL に「/home」または「/main」を追加したくない場合があります。
これを機能させる方法はありますか?