Угловой 7-проходной импортированный модуль в функциональный модуль - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть иерархия функциональных модулей в приложении Angular 7. Он структурирован следующим образом:

  • приложение
    • Администратор (модуль интерфейса импортирован здесь)
      • feature1
      • feature2
    • * 1014 общественности *

В модуле администратора я импортировал модуль инфраструктуры пользовательского интерфейса. Мой вопрос: если мои модули импортируются «вверх», это также означает, что компоненты в модуле feature1 имеют доступ к модулю пользовательского интерфейса или мне нужно импортировать модуль пользовательского интерфейса в каждый функциональный модуль? Есть ли у меня фундаментальное недопонимание «дочерних» модулей?

app.module

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import { AdminModule } from './modules/admin/admin.module';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    BrowserAnimationsModule  ,
    AdminModule,
    AppRoutingModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

admin.module

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { AdminRoutingModule } from './admin-routing.module';
import { UIFrameworkModule} from '@ui-framework/angular';

import { Feature1Module} from './modules/feature1/feature1.module';
import { Feature2Module} from './modules/feature2/feature2.module';

@NgModule({
  imports: [
    CommonModule,
    Feature1Module,
    Feature2Module,
    AdminRoutingModule,
    UIFrameWorkModule
  ]
})
export class AdminModule {}

feature1.module

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { Feature1RoutingModule} from './feature1-routing.module';

@NgModule({
  imports: [
    CommonModule,
    Feature1RoutingModule
  ]
})
export class Feature1Module {}

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

У вас может быть столько модулей - но вопрос в том, как импортировать модуль ко всем модулям в одном массиве импорта - наступает основной акт разделения модулей

Создайте новый модуль как общий модуль. Этот модуль не содержит никаких компонентов или директив, если в нем нет проблем - этот модуль должен быть модулем, который импортирует весь ваш общий модуль

В вашем случае UIFrameWorkModule это общий модуль, к которому вы хотите получить доступ как в функциональном модуле, так и в модуле администратора, если это так, создайте общий модуль и импортируйте этот модуль и экспортируйте этот общий модуль, как показано ниже

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { UIFrameworkModule } from '@ui-framework/angular';

@NgModule({
  imports: [
    CommonModule,
    UIFrameworkModule 
  ],
  exports:[UIFrameworkModule]
})
export class SharedModule {}

Теперь этот общий модуль содержит UIFrameworkModule и экспортирует тот же модуль. Вам нужно просто импортировать этот общий модуль туда, куда вы захотите, и UIFrameworkModule доставится в импортированный модуль

.

admin.module

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { AdminRoutingModule } from './admin-routing.module';
import { UIFrameworkModule} from '@ui-framework/angular';

import { Feature1Module} from './modules/feature1/feature1.module';
import { Feature2Module} from './modules/feature2/feature2.module';

@NgModule({
  imports: [
    CommonModule,
    Feature1Module,
    Feature2Module,
    AdminRoutingModule,
    SharedModule 
  ]
})
export class AdminModule {}

feature.module

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { Feature1RoutingModule} from './feature1-routing.module';

@NgModule({
  imports: [
    CommonModule,
    Feature1RoutingModule,
    SharedModule 
  ]
})
export class Feature1Module {}

Я только что импортировал общий модуль в оба модуля, так как вы можете переместить весь свой общий модуль в общие модули - надеюсь, это поможет - Спасибо, счастливого кодирования !!

0 голосов
/ 07 ноября 2018

Если ваши дочерние модули находятся в FeatureModule, вам не нужно импортировать ChildModules отдельно, просто экспортируйте компоненты, принадлежащие ChildModule, и импортируйте FeatureModule в вашем верхнем модуле

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