#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. Большое вам спасибо.