Angular 2: обмен между различными компонентами без их уничтожения

Я пытаюсь создать диспетчер окон с Angular 2. В принципе, я хочу иметь возможность обмениваться между окнами (которые являются компонентами, внедренными в розетку маршрутизатора), не теряя своих состояний. Например, я редактирую форму информации о продукте, когда я перехожу к списку клиентов, затем возвращаюсь к форме продукта, и я нахожу ее в том же состоянии... Возможно ли это?

Ответы

Ответ 1

Вот как я превзошел это требование.

После изменения маршрута компоненты окон будут уничтожены. Таким образом, чтобы сохранить состояние между этими экземплярами Windows, мне пришлось вручную сохранить его в инъецируемой службе.

Чтобы сохранить и загрузить состояние для каждого компонента окна, я использовал крючки жизненного цикла, предоставляемые маршрутизатором: onActivate (next, prev) и onDeactivate (next, prev).

ИЗМЕНИТЬ

Между тем, я открыл проблему на Angular 2 github repo с запросом этой функции.

Ответ 2

Оформить заказ canReuse на маршрутизаторе: canReuse в angular2 api docs

Если вы укажете его, маршрутизатор не будет уничтожать ваш компонент при отмене его.