1)创建新项目
ng new angular-test
ng g component projects
ng g component typings
Run Code Online (Sandbox Code Playgroud)
2)添加简单路由
/src/app/app.component.html
<router-outlet></router-outlet>
Run Code Online (Sandbox Code Playgroud)
/src/app/app.module.ts
export const ROUTES: Routes = [
{
path: '',
redirectTo: '/projects',
pathMatch: 'full'
},
{
path: 'projects',
component: ProjectsComponent,
},
{
path: '/typings',
component: TypingsComponent
},
{
path: '**', redirectTo: ''
}
];
@NgModule({
declarations: [
AppComponent,
ProjectsComponent,
TypingsComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
RouterModule.forChild(ROUTES)
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
EXCEPTION: Error in ./AppComponent class AppComponent - inline template:3:0 caused by: No provider for RouterOutletMap!
ORIGINAL EXCEPTION: No provider for RouterOutletMap!
Run Code Online (Sandbox Code Playgroud)
我试图将RouterOutletMap添加到AppModule中的提供程序,异常不抛出,但app不会重定向到项目而不显示嵌套组件
Pau*_*tha 27
你需要调用RouterModule.forRootapp模块,而不是forChild.前者增加了所有核心提供者,而后者则没有.您应该使用forChild子模块,而不是app模块.