1
我想創建一個多級路由層次結構。事情是這樣的:Angular2二級子路由到第一個孩子的根insteead
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 /核心/ item:
APP Works!
core module
item works
但是,我越來越:
APP Works!
item works
因此,項目路由器可直接在應用模板,而不是核心模板渲染。
這似乎像以前一樣被給予同樣的結果。 –
@SourabhDev,你是什麼意思?我解釋了爲什麼你沒有你期望的結果 –
這種方法確實能夠達到預期的結果。看起來core.router和item.router在這裏沒用。我希望有一種更清晰的方式來按組件和子組件分隔路線。 –