首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RouterModule.forRoot()调用了两次。延迟加载的模块应该使用RouterModule.forChild()代替

RouterModule.forRoot()调用了两次。延迟加载的模块应该使用RouterModule.forChild()代替
EN

Stack Overflow用户
提问于 2020-09-25 10:59:17
回答 1查看 2.7K关注 0票数 0

我正在延迟加载模块中导入AppModule,该模块正在创建错误: Error: Uncaught (为了承诺):Error: RouterModule.forRoot()调用了两次。延迟加载的模块应该使用RouterModule.forChild()代替。

应用程序模块

代码语言:javascript
复制
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 { }

应用程序路由模块

代码语言:javascript
复制
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 { }

日志模块

代码语言:javascript
复制
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 { }

日志路由模块

代码语言:javascript
复制
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:https://i.stack.imgur.com/yMDry.png

EN

回答 1

Stack Overflow用户

发布于 2020-09-25 11:08:01

日志模块

代码语言:javascript
复制
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中导入了RouterModule.forRoot(),这导致RouterModule.forRoot()被调用了两次。AppModule是根模块,不应该导入子模块。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64062809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档