我正在尝试创建一个嵌套路由(我相信这是它的术语)。
通过一条主要路线提供四个完全不同的页面(main-component.html只是路由器出口标签)。
在第一个路径路径内,我想在页面的一部分(中心div)中包含第二个路径,该路径将通过箭头按钮(向前和向后)进行导航。该div的内容很复杂(包括与后端服务器的通信),因此使用* ngIf和不同的模板进行构造并不理想。
这可以用两条路线完成吗?如果可以,怎么办?
答案 0 :(得分:0)
可以这样做:
import { Routes, RouterModule } from '@angular/router';
import { FirstComponent,
SecondComponent,
ThirdComponent,
FourthComponent
} from './app.component';
const appRoutes: Routes = [
{
path: 'first',
component: FirstComponent,
children:[
{
path : 'second',
component: SecondComponent,
children:[
{
path : 'fourth',
component: FourthComponent
},
{
path : 'third',
component: ThirdComponent
}
]
}
]
},
{
path: '',
redirectTo: '/first',
pathMatch: 'full'
},
];
和组件:
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: `
<h3 class="title">Routing</h3>
<hr />
<router-outlet></router-outlet>
`
})
export class AppComponent {
}
@Component({
template: `
<h3 class="title">FirstComponent</h3>
<nav>
</nav>
<hr />
<router-outlet></router-outlet>
`
})
export class FirstComponent {
}
@Component({
template: `
<h3 class="title">SecondComponent</h3>
<nav>
<a routerLink="second" routerLinkActive="active" >Second</a>
<a routerLink="third" routerLinkActive="active" >Third</a>
</nav>
<hr />
<router-outlet></router-outlet>
`
})
export class SecondComponent {
}
@Component({
template: `
<h3 class="title">ThirdComponent</h3>
`
})
export class ThirdComponent {
}
@Component({
template: `
<h3 class="title">FourthComponent</h3>
<hr />
`
})
export class FourthComponent {
}
答案 1 :(得分:0)
您可以创建延迟加载。带有路由的顶级根模块。接下来是吉德(Gide)。
index.html文件
.SetSourceData
然后创建root.module.ts文件和root-routing.module.ts
<body>
<app-root></app-root>
<body>
account-routing.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { RootComponent } from './root.component';
import { from } from 'rxjs';
const routes: Routes = [
{
path: 'account',
loadChildren: './app/account/account.module#AccountModule',
data: { preload: true }
},
{
path: 'app',
loadChildren: './app/app.module#AppModule',
data: { preload: true }
},
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule],
providers: []
})
export class RootRoutingModule { }
then create child account module and account routing. for following code