问题描述
我正在延迟加载的模块中导入AppModule,这会产生错误:错误:未捕获(承诺):错误:RouterModule.forRoot()被调用了两次。延迟加载的模块应改用RouterModule.forChild()。
应用程序模块
import { browserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import { NgClockPickerlibmodule } from 'ng-clock-picker-lib';
import { SharedDataService } from './services/shared-data.service';
@NgModule({
declarations: [
AppComponent,...
],imports: [
browserModule,NgClockPickerlibmodule,providers: [
SharedDataService,exports: [
NgClockPickerlibmodule
],bootstrap: [AppComponent]
})
export class AppModule { }
应用程序路由模块
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule,Routes } from '@angular/router';
const routes: Routes = [
{ path: 'journalling',loadChildren: './Journalling/modules/journalling.module#JournallingModule' }
];
@NgModule({
imports: [
CommonModule,RouterModule.forRoot(routes)
],declarations: [
],exports: [RouterModule]
})
export class AppRoutingModule { }
新闻发布模块
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { JournallingRoutingModule } from './journalling-routing.module';
import { AppModule } from 'src/app/app.module';
@NgModule({
imports: [
CommonModule,JournallingRoutingModule,AppModule
],declarations: [
],providers: [
]
})
export class JournallingModule { }
新闻发布路由模块
import { NgModule } from '@angular/core';
import { Routes,RouterModule } from '@angular/router';
const routes: Routes = [
];
@NgModule({
imports: [RouterModule.forChild(routes)],exports: [RouterModule]
})
export class JournallingRoutingModule { }
[错误RouterModule.forRoot()被调用了两次。延迟加载的模块应改用forChild()。] [1] [1]:https://i.stack.imgur.com/yMDry.png
解决方法
新闻发布模块
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { JournallingRoutingModule } from './journalling-routing.module';
import { AppModule } from 'src/app/app.module'; <--- remove this import
@NgModule({
imports: [
CommonModule,JournallingRoutingModule,AppModule // <--- remove this import
],declarations: [
],providers: [
]
})
export class JournallingModule { }
问题是您在JournallingModule中导入AppModule,这导致RouterModule.forRoot()被调用两次。 AppModule是您的根模块,不应导入子模块中。