Angular2 RC5 общий компонент между модулями
Я просто обновляю свой angular2-app
до нового RC5
. У меня довольно далеко, и все выглядит нормально, но теперь я хочу перестроить его в NgModules
и наткнулся на одно:
Я использовал компонент ( "ComponentA" ) для нескольких других компонентов в разных модулях (например, ModuleA и ModuleB).
Как только это будет использовано, я получаю:
Неподготовленный тип ComponentA является частью объявления из 2 модулей: ModuleA и ModuleB!
Ошибка.
Насколько я вижу, единственный способ обойти это - использовать Shared-Module
со всеми моими обычными вещами, верно? Или есть более простой способ обмена компонентами через модули?
Заранее спасибо:)
Ответы
Ответ 1
Вам необходимо создать модуль для общего компонента и импортировать этот модуль, где вы хотите использовать этот компонент.
Как говорится в сообщениях об ошибках, компонент (или директива или труба) может быть указан только в directives
только одного модуля.
Если вы хотите повторно использовать, вам нужно добавить модуль, который содержит его, в @NgModule({imports: [...]})
модуля, в котором вы хотите его использовать.
Ответ 2
Я создаю модуль, содержащий ВСЕ мои общие компоненты.
Это упрощает импорт в другие модули.
Pro tip: поместите маршрутизацию в свои модули и попробуйте - просто для удовольствия - сделать один из них ленивым загруженным.
Тогда вы подумаете: "модули whoaaaaa являются cooooolllll"
Ответ 3
Вы должны использовать общий модуль.
SharedModule существует, чтобы сделать общедоступные компоненты, директивы и трубы доступными для использования в шаблонах компонентов во многих других модулях.
Вам нужно экспортировать и импортировать его в другие модули, где бы вы ни захотели.
для получения дополнительной информации см. ссылку общий модуль