Как правильно избегать циклических зависимостей в общих модулях Angular? - PullRequest
0 голосов
/ 31 мая 2018

В настоящее время я пытаюсь найти правильное решение для избежания циклических зависимостей в общих модулях 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 {}

И загружающему модулю, как вы видите, здесь нужны некоторые зависимости от SharedModule.Интересно, может ли кто-нибудь дать ссылку на какое-нибудь хорошее руководство по архитектурному стилю для управления такими зависимостями или помочь мне с правильным мышлением.Я пытался что-то искать, но пока не нашел.Заранее благодарен за любой ответ.

1 Ответ

0 голосов
/ 31 мая 2018

По моему мнению, вы не должны держать LoadingModule внутри SharedModule, если вы хотите иметь некоторые зависимости от SharedModule.Вместо этого в app.module.ts может быть добавлен LoadingModule, который можно использовать в приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...