Понимание углового импорта модуля - PullRequest
0 голосов
/ 10 июля 2019

Я работаю над устаревшей библиотекой, которая использует в некоторых своих компонентах функциональные возможности FormsModules, поэтому FormsModule импортируется на уровне LibraryModule следующим образом:

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

import { FormsModule } from '@angular/forms';

@NgModule({
    declarations: [
        LabelButtonPrimaryComponent,
        TextAreaComponent,
        TextInputComponent,
    ],
    imports: [
        CommonModule,
        FormsModule
    ]})
 export class IronFrameworkModule { }

Когда я архивирую / упаковываю библиотеку, а затем устанавливаю ее в какое-то другое угловое приложение, мне все равно нужно импортировать FormsModule в Application AppModule для работы компонентов в IronLibrary.

Почему это?

1 Ответ

1 голос
/ 10 июля 2019

A Module, чтобы его видели и использовали другие Module, его необходимо импортировать в декоратор класса @NgModule, и он виден только этому модулю, поэтому в вашем случае FormModule виден только до IronFrameworkModule, но не может быть замечен AppModule. У вас есть два варианта:

  1. Как и вы: импортируйте FormModule в AppModule, так что это теперь видно AppModule

  2. Экспорт FormModule из вашего IronFrameworkModule так Module импорт IronFrameworkModule, FormModule также будет виден им для использования

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

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