Bim*_*Das 11 angular2-template angular2-routing angular
路由条件:
1) path: /login , component: LoginComponent
2) path: /inbox , component: InboxMessageComponent
3) path:/inbox/all , "Load InboxMessageListComponent in Right side Box Only",
4) path:/inbox/13 , "Load InboxMessageDetailComponent in Right side Box Only"
Run Code Online (Sandbox Code Playgroud)
所以我创建了两个名为app-routing.module.ts和inbox-routing.module.ts的路由模块.
APP-routing.module.ts
@NgModule({
imports: [
RouterModule.forRoot([
{ path: 'login', component: LoginComponent},
{ path: 'inbox', component: InboxMessageComponent },
{ path: '', component: InboxMessageComponent },
{ path: '**', component: NotFoundComponent }
])
],
exports: [RouterModule]
})
Run Code Online (Sandbox Code Playgroud)
收件箱 - routing.module.ts
@NgModule({
imports: [
RouterModule.forChild([
{path: '/inbox/list',component: InboxMessageListComponent},
{path: '/inbox/detail/:id',component: InboxMessageDetailComponent}
])
],
exports: [RouterModule]
})
Run Code Online (Sandbox Code Playgroud)
app.component.ts
template : '<router-outlet></router-outlet>'<!--This route-outlet will load "LoginComponent/InboxComponent" depending upon the routing. -->
Run Code Online (Sandbox Code Playgroud)
收件箱 - message.component.ts
template:`
<sidebar-component></sidebar-component>
<router-outlet></router-outlet> <!-- This will load InboxMessageListComponent or InboxMessageDetailComponent -->
`
Run Code Online (Sandbox Code Playgroud)
但问题是只有一个是一次工作.第二个是跳过.
如何布线这类项目?
例如,您必须声明一个主路径和childer路径:
import {NgModule} from '@angular/core';
import {RouterModule, Routes} from '@angular/router';
import {AddProject} from './add-project.component';
import {ViewProject} from './view-project.component';
import {Project} from './charity-project.component';
import {ProjectList} from './charity-project-list.component';
export const routes: Routes = [
{
path: 'project', component: Project,
children: [
{ path: '', component: ProjectList },
{ path: 'add', component: AddProject },
{ path: 'view/:id', component: ViewProject },
{ path: 'edit/:id', component: AddProject }
]
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class ProjectRoutes { }
Run Code Online (Sandbox Code Playgroud)
在儿童路径中,你必须申报你的
3) path:/inbox/all , "Load InboxMessageListComponent in Left side Box Only",
4) path:/inbox/13 , "Load InboxMessageDetailComponent in Right side Box Only"
Run Code Online (Sandbox Code Playgroud)
我认为这inbox是应用程序的一个模块app。在这种情况下,您还应该inbox在模块中导入模块,app如下所示:
@NgModule({
imports: [
RouterModule.forRoot([
{ path: 'login', component: LoginComponent},
{ path: 'inbox', component: InboxMessageComponent },
{ path: '', component: InboxMessageComponent },
{ path: '**', component: NotFoundComponent }
]),
MyInboxModule
],
exports: [RouterModule]
})
Run Code Online (Sandbox Code Playgroud)
另请参阅链接 Angular2 中的路由和导航:https://angular.io/docs/ts/latest/guide/router.html
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
10880 次 |
| 最近记录: |