Как организовать отношения между компонентами? - PullRequest
0 голосов
/ 17 февраля 2020

Это проблема архитектуры, я попытаюсь объяснить, как я это делаю.

Есть 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.

Или последний путь:

Какой способ выбрать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...