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 существует, чтобы сделать общедоступные компоненты, директивы и трубы доступными для использования в шаблонах компонентов во многих других модулях.

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

для получения дополнительной информации см. ссылку общий модуль