【问题标题】:Range Error Maximum call stack size exceeded Angular范围错误 超出最大调用堆栈大小 Angular
【发布时间】:2021-11-03 21:36:23
【问题描述】:

所以我想在我的应用程序中添加机器详细信息和按钮栏,这就是发生的事情。我在其他部分也使用过,效果很好,只有核心模块有错误。

The error message

main.ts

import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { AppModule } from './app/app.module';
import { environment } from './environments/environment';

if (environment.production) {
  enableProdMode();
}

platformBrowserDynamic().bootstrapModule(AppModule)
  .catch(err => console.error(err));

核心模块(添加“IfaButtonModule”或“MachineModule”时出现错误)

@NgModule({
  declarations: [
    TakePhotoComponent,
    ConfirmationDialogComponent,
    ShareMachineComponent,
    NotificationsComponent,
  ],
  imports: [
    CommonModule,
    WebcamModule,
    MatButtonModule,
    TranslateModule,
    MatDialogModule,
    MatFormFieldModule,
    MatInputModule,
    ReactiveFormsModule,
    MatIconModule,
    MatExpansionModule,
    MatBadgeModule,
    MatCardModule,
    MatMenuModule,
    IfaButtonModule,
    MachineModule
  ],
  exports: [
    TakePhotoComponent,
    ConfirmationDialogComponent,
    ShareMachineComponent,
    NotificationsComponent
  ],
  providers: [NgxImageCompressService]
})
export class CoreModule { }

按钮模块

@NgModule({
  declarations: [
    IfaButtonBarItemComponent,
    IfaButtonBarComponent,
    IfaButtonBarGroupComponent
  ],
  imports: [
    CommonModule,
    CoreModule,
    MatButtonModule,
    TranslateModule
  ],
  exports: [
    IfaButtonBarComponent,
    IfaButtonBarGroupComponent,
    IfaButtonBarItemComponent
  ]
})
export class IfaButtonModule { }

机器模块

@NgModule({
  declarations: [
    MachineListComponent,
    MachineDetailEditComponent,
    MachineDetailComponent,
    MachineListItemComponent
  ],
  imports: [
    CommonModule,
    CoreModule,
    MatCardModule,
    MatMenuModule,
    MatListModule,
    MatButtonModule,
    FormsModule,
    ReactiveFormsModule,
    NgxPaginationModule,
    MatFormFieldModule,
    MatInputModule,
    TranslateModule,
    MatDialogModule,
    MatExpansionModule,
    IfaButtonModule,
    OperationModeModule,
    ProtectionModule,
    ManipulationModule
  ],
  exports: [
    MatMenuModule,
    MachineDetailEditComponent,
    MachineListComponent,
    MachineDetailComponent
  ]
})
export class MachineModule {

}

使用组件的html:(核心模块区域内)

<ng-container>
  <app-machine-detail [machine]="completeMachine">
  </app-machine-detail>
  <app-ifa-button-bar-group>
    <app-ifa-button-bar-item [label]="'MISC.BACK'" (click)="navigateBack()">
    </app-ifa-button-bar-item>
  </app-ifa-button-bar-group>
</ng-container>

【问题讨论】:

    标签: javascript angular typescript


    【解决方案1】:

    这可能是因为您在MachineModule 中导入了CoreModule,在CoreModule 中导入了MachineModule。这不应该发生,您应该重新处理模块依赖项并修复循环导入。 IfaButtonModule 有完全相同的问题。

    【讨论】:

    • 我从其他两个模块中删除了核心模块,但仍然出现相同的错误。
    • 然后检查更多循环依赖。也许您导入到这些模块中的其他模块会导入 CoreModule。 OperationModeModuleProtectionModuleManipulationModule 也应该导入CoreModule
    • 感谢它现在可以工作了!
    猜你喜欢
    • 2015-09-27
    • 1970-01-01
    • 2014-05-23
    • 2021-08-15
    • 2017-10-14
    • 2019-08-04
    • 2019-05-14
    • 2017-08-06
    • 2017-02-27
    相关资源
    最近更新 更多