【问题标题】:What is the proper way to avoid circular dependencies in Angular shared modules?在 Angular 共享模块中避免循环依赖的正确方法是什么?
【发布时间】:2018-05-31 09:43:08
【问题描述】:

我目前正试图找出正确的决定来避免 Angular 共享模块中的循环依赖。

我的项目中有共享模块,其中包括我在整个项目中使用的所有常见角度模块。

我的共享模块:

import { NgModule } from '@angular/core';
import { ReactiveFormsModule } from '@angular/forms';

import {
    MatSnackBarModule,
    MatButtonModule,
    MatCheckboxModule,
    MatRadioModule,
    MatIconModule,
    MatInputModule,
    MatProgressSpinnerModule,
    MatDialogModule
} from '@angular/material';

import { LoadingModule } from './components/loading/loading.module';

...

@NgModule({
    declarations: [],
    imports: [
        MatSnackBarModule,
        ReactiveFormsModule,
        MatButtonModule,
        MatInputModule,
        MatCheckboxModule,
        MatRadioModule,
        MatIconModule,
        MatProgressSpinnerModule,
        MatProgressSpinnerModule,
        MatDialogModule,
        ...
        
        LoadingModule        
    ],
    exports: [
        MatSnackBarModule,
        MatButtonModule,
        MatInputModule,
        MatCheckboxModule,
        MatRadioModule,
        MatIconModule,
        ReactiveFormsModule,
        MatProgressSpinnerModule,
        MatProgressSpinnerModule,
        MatDialogModule,
        ...       
        LoadingModule
    ],
    providers: [...]
})

export class SharedModule {}

还有LoadingModule,你可以看到这里需要SharedModule 的一些依赖。 我想知道,是否有人可以提供一些好的架构风格指南的链接来管理这种依赖关系,或者帮助我正确的思维方式。我试图寻找一些东西,但还没有找到。 提前感谢您的任何回答。

【问题讨论】:

标签: javascript angular


【解决方案1】:

在我看来,如果你想对 SharedModule 有一些依赖,你不应该把 LoadingModule 放在 SharedModule 中。相反,可以将 LoadingModule 添加到 app.module.ts 中,并且可以跨应用程序使用。

【讨论】:

  • 谢谢,@PadmapriyaVishnuvardhan,这真的很有帮助。但似乎我仍然必须将 LoadingModule 单独导入我的延迟加载模块。也许没关系。
猜你喜欢
  • 2020-02-13
  • 2020-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-06
  • 1970-01-01
相关资源
最近更新 更多