Angular 4 RouterModule

时间:2017-11-15 10:35:38

标签: angular

当我尝试在我的应用程序上添加RouterModule时,我遇到了一些问题。 我在app.module.ts文件中添加路由器系统后。我一次又一次地得到这个错误:

compiler.es5.js:1689 Uncaught Error: RouterModule cannot be used as an entry component.

此处还有我的app.module.ts代码:

import { BrowserModule } from '@angular/platform-browser';
import { FormsModule  }   from '@angular/forms';
import { ReactiveFormsModule } from '@angular/forms';
import { NgModule } from '@angular/core';
import { RouterModule, Routes} from '@angular/router';

import { AppComponent } from './app.component';
import { ContactComponent } from './components/contact.component';

const appRoutes : Routes = [
    { path: 'test1', component : ContactComponent}  
]

@NgModule({
  declarations: [
    AppComponent,
    ContactComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    ReactiveFormsModule,
    RouterModule.forRoot(appRoutes)
  ],

  providers: [],
  bootstrap: [AppComponent, RouterModule]
 })
export class AppModule { }

3 个答案:

答案 0 :(得分:2)

从bootstrap中删除RouterModule

 bootstrap: [AppComponent]

答案 1 :(得分:2)

RouterModule的{​​{1}}数组中删除AppModule

bootstrap

我很好奇,为什么你首先将它添加到@NgModule({ declarations: [ AppComponent, ContactComponent ], imports: [ BrowserModule, FormsModule, ReactiveFormsModule, RouterModule.forRoot(appRoutes) ], bootstrap: [ AppComponent <-- only AppComponent should be in boostrap array ] }) export class AppModule { } 数组?

答案 2 :(得分:0)

虽然这是一个大错,你需要像这样使用。

  bootstrap: [AppComponent] // <== Remove RouterModule from here

您不得在Modules(引导程序数组)中添加任何ServicesDirectivesPipesbootstrap

bootstrap - Angular创建并插入index.html主机网页的根AppComponent。

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent // Components, Services, Pipes
  ],
  imports: [
    BrowserModule // Modules
  ],
  providers: [], // Services
  bootstrap: [AppComponent] // The root Component E.g. AppComponent
})
export class AppModule { }