没有RouterOutletMap的提供者

srg*_*hma 12 angular

最新的Angular 2.0.0和最新的angular-cli 1.0.0-beta.14,节点:6.6.0,os:linux x64

我所做的:

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模块.