Это проблема архитектуры, я попытаюсь объяснить, как я это делаю.
Есть LayerComponent
. Он отображает информацию о слоях.
слой можно редактировать здесь, нажав кнопку редактирования.
Для редактирования слоя есть еще один EditLayerComponent
, который принимает данные входного слоя. Моя проблема в том, что я хочу показать компонент редактирования слоя под компонентом слоя. Должно ли это быть parent (LayerComponent
) => Child (EditLayerComponent
) или они должны быть расположены на одном уровне?
В этом родительском компоненте LayerComponent
управляет EditLayerComponent
. Это нормально.
Но проблема возникает, когда я хочу показать EditComponent
из другого приложения. Как показать / скрыть EditLayerComponent
тогда?
Конечно, я могу использовать тему.
Итак, случаи:
One:
<LayerComponent>
<EditLayerComponent [layer]="layer"></EditLayerComponent>
</LayerComponent>
Секунда:
Во втором случае я слушаю событие Тема в EditLayerComponent
, если существует, я показываю редактирование в форме.
Дефект в том, что EditLayerComponent
будет инициализироваться всегда.
Решение:
Обернуть два компонента:
<LayerWrapComponent>
<LayerComponent></LayerComponent>
<EditLayerComponent [layer]="layer"></EditLayerComponent>
</LayerWrapComponent>
Затем прослушать редактировать событие внутри <LayerWrapComponent>
и переход к EditLayerComponent
.
Или последний путь:
Какой способ выбрать?