Нужно ли добавлять плагин к каждому модулю в angular 2?

Я использую ng-bootstrap с angular 2. Я импортировал его в свой app.module, и он работает нормально.

Я лениво загружаю другой модуль, и ng-bootstrap компонента в нем не работают. Они работают, если я снова импортирую модуль ng-bootstrap в модуль с ленивой загрузкой.

Мой вопрос: нужно ли мне снова импортировать сторонние модули в каждый модуль, который я пишу, или есть какой-то способ заставить их работать с помощью какой-то настройки?

PS: я новичок в angular 2


person ashfaq.p    schedule 26.11.2016    source источник


Ответы (1)


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

What you can do is to create a module that exports several other modules (like for example the `BrowserModule` that exports `CommonModule`.

@NgModule({
  declarations: [CoolComponent, CoolDirective, CoolPipe],
  imports: [MySharedModule1, MySharedModule2],
  exports: [MySharedModule1, MySharedModule2, CoolComponent, CoolDirective, CoolPipe],
})
export class AllInOneModule {}

@NgModule({
  imports: [AllInOneModule]
})
class MyModule {}

Таким образом, вы сделаете все, что экспортируется AllInOneModule, доступным для MyModule.

person Günter Zöchbauer    schedule 26.11.2016
comment
Итак, я могу сделать так, чтобы мой app.module (корневой модуль) экспортировал все, или это должен быть новый отдельный модуль? - person ashfaq.p; 26.11.2016
comment
Думаю, AppModule сработает, но я бы не рекомендовал. Лучше создайте отдельный модуль. - person Günter Zöchbauer; 26.11.2016
comment
вы не рекомендуете это из-за проблем с производительностью или чего-то еще? - person ashfaq.p; 26.11.2016
comment
Не из-за производительности. Только из-за стиля. В любом случае, я бы не стал упаковывать много в один модуль. Если вещи связаны друг с другом и должны использоваться вместе, это здорово, но только потому, что вы хотите только 1 импорт вместо 3, похоже, не имеет большой ценности. Я считаю полезным увидеть, от чего зависит модуль. Если это зависит от всего, это не полезная информация. - person Günter Zöchbauer; 26.11.2016
comment
Согласен, что мы должны иметь возможность видеть, от чего зависит модуль. - person ashfaq.p; 26.11.2016