マルチレベルルーティング階層を作成しようとしています。このような何か:Angular2の第2レベルの子が最初の子のルートインスタンスにルーティングする
app
|---core
|---items
次のように私のアプリルータとhtmlは次のとおりです。
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
const routes: Routes = [
{path: 'core', loadChildren: 'app/core/core.module#CoreModule'}
];
@NgModule({
imports: [
RouterModule.forRoot(routes)
],
exports: [
RouterModule
],
providers: [
]
})
export class AppRoutingModule { }
HTML:次のように
<h1>
{{title}}
</h1>
<router-outlet></router-outlet>
マイコアルートとhtmlは以下のとおりです。
import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router';
import { CoreComponent } from './core.component';
const coreRoutes:Routes = [
{path: 'item', loadChildren: 'app/core/item/item.module#ItemModule'},
{path: '', component: CoreComponent}
];
@NgModule({
imports: [RouterModule.forChild(coreRoutes)],
exports: [RouterModule] }) export class CoreRoutingModule { }
HTML:
core module
<router-outlet></router-outlet>
、次のように最後にアイテムルートとhtmlは以下のとおりです。
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ItemComponent } from './item.component';
const itemRoutes:Routes = [
{path: '', component: ItemComponent}
];
@NgModule({
imports: [RouterModule.forChild(itemRoutes)],
exports: [RouterModule]
})
export class ItemRoutingModule {
}
HTML:
<p>
item works!
</p>
私はURL localhostのために、次の取得するために期待していた:4200 /コア/品目:
APP Works!
core module
item works
しかし、私は取得しています:
APP Works!
item works
だから、アイテムルータが直接アプリテンプレートの代わりに、コアテンプレートでレンダリングされます。
これは、前と同じ結果を与えているようです。 –
@SourabhDev、どういう意味ですか?なぜあなたはあなたが期待しているものを持っていないのかを説明しました –
このアプローチは、期待される結果に関して機能します。 core.routerとitem.routerはここでは役に立たないようです。私は、コンポーネントとサブコンポーネントによってルートを分離する、よりきれいな方法があることを望みます。 –