импорт из SharedModule FormModule в модуль, экспортированный через SharedModule Angular 2

#angular #typescript

#angular #typescript

Вопрос:

У меня есть некоторый AutocompleteModule, который экспортируется с SharedModule во все приложение. В SharedModule я экспортировал FormsModule во все приложение.

Но когда я попытался использовать ngModel в AutocompleteModule, я получил сообщение об ошибке ngModel. Когда я импортировал FormsModule в AutocompelteModule, он также работает нормально.

Но у меня есть FormsModule, экспортированный в SharedModule. Итак, вопрос о причине. Могу ли я импортировать SharedModule в AutocompleteModule, чтобы получить доступ к FormsModule? (Но я видел в документе, что выполнять этот цикл — плохая идея).

Итак, вопрос: должен ли я импортировать FormsModule в AutocompelteModule aso или существует какая-то лучшая практика? Спасибо!

Ответ №1:

AutocompleteModule требуется собственный FormsModule импорт. Вы можете подумать, что импорт SharedModule в AutocompleteModule будет делать трюк, но это не так, поскольку вы получите циклическую зависимость, что приведет к сбою.

Лучший вариант — просто напрямую импортировать FormsModule

 @NgModule({
  imports: [ FormsModule ]
})
class AutocompleteModule {}
  

В SharedModule я экспортировал FormsModule во все приложение

Это так не работает. Доступ к компонентам, каналам и директивам не наследуется. Они должны быть импортированы в модуль, который их использует, так или иначе.

Комментарии:

1. Большое вам спасибо.