在Angular共享模块中避免循环依赖的正确方法是什么?

时间:2018-05-31 09:43:09

标签: javascript angular

我目前正试图找出在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的依赖项。 我想知道,如果有人可以为一些好的建筑风格指南提供链接来管理这种依赖关系或帮助我正确的思考方式。我试图寻找一些东西,但尚未找到。 提前感谢您的回答。

1 个答案:

答案 0 :(得分:0)

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