1
私は簡単なルーティングでAngular2アプリを持っています。このルートは次のようになります。レイジーモジュールへの角経路はリダイレクトを引き起こす
const routes: Routes = [
{ path: 'detail', outlet: 'primary', component: DetailComponent },
{ path: 'user', outlet: 'primary', loadChildren: 'app/auth/auth.module#AuthModule' },
{ path: '', redirectTo: '/user/login', pathMatch: 'full' }
];
ここでは素晴らしいですが、詳細モジュールを読み込みたいと思います。しかし、詳細モジュールを遅延ロードとして設定すると、/user/login
にリダイレクトされます。怠惰な負荷に、私は単純に実行します。上記で実行したとき
const routes: Routes = [
{ path: 'detail', outlet: 'primary', loadChildren: 'app/detail/detail.module#DetailModule' },
{ path: 'user', outlet: 'primary', loadChildren: 'app/auth/auth.module#AuthModule' },
{ path: '', redirectTo: '/user/login', pathMatch: 'full' }
];
ルーティングトレースは、この出力を与える:
Router Event: t
NavigationStart(id: 1, url: '/detail')
t {id: 1, url: "/detail"}
App detail
Router Event: t
RoutesRecognized(id: 1, url: '/detail', urlAfterRedirects: '/user/login', state: Route(url:'', path:'') { Route(url:'user', path:'user') { Route(url:'', path:'') { Route(url:'login', path:'login') } } })
t {id: 1, url: "/detail", urlAfterRedirects: "/user/login", state: e}
Router Event: t
NavigationCancel(id: 1, url: '/detail')
t {id: 1, url: "/detail", reason: ""}
Router Event: t
NavigationStart(id: 2, url: '/detail')
t {id: 2, url: "/detail"}
Router Event: t
RoutesRecognized(id: 2, url: '/detail', urlAfterRedirects: '/user/login', state: Route(url:'', path:'') { Route(url:'user', path:'user') { Route(url:'', path:'') { Route(url:'login', path:'login') } } })
t {id: 2, url: "/detail", urlAfterRedirects: "/user/login", state: e}
Router Event: t
NavigationEnd(id: 2, url: '/detail', urlAfterRedirects: '/user/login')
t {id: 2, url: "/detail", urlAfterRedirects: "/user/login"}
結局、これはEXCEPTION: Uncaught (in promise): RangeError: Maximum call stack size exceeded
エラーにつながります。それはそれ自身のルーティングを持っていない限り
おかげで、 イ・