Angular 2: обмен между различными компонентами без их уничтожения
Я пытаюсь создать диспетчер окон с Angular 2. В принципе, я хочу иметь возможность обмениваться между окнами (которые являются компонентами, внедренными в розетку маршрутизатора), не теряя своих состояний. Например, я редактирую форму информации о продукте, когда я перехожу к списку клиентов, затем возвращаюсь к форме продукта, и я нахожу ее в том же состоянии... Возможно ли это?
Ответы
Ответ 1
Вот как я превзошел это требование.
После изменения маршрута компоненты окон будут уничтожены. Таким образом, чтобы сохранить состояние между этими экземплярами Windows, мне пришлось вручную сохранить его в инъецируемой службе.
Чтобы сохранить и загрузить состояние для каждого компонента окна, я использовал крючки жизненного цикла, предоставляемые маршрутизатором: onActivate (next, prev) и onDeactivate (next, prev).
ИЗМЕНИТЬ
Между тем, я открыл проблему на Angular 2 github repo с запросом этой функции.
Ответ 2
Оформить заказ canReuse
на маршрутизаторе: canReuse в angular2 api docs
Если вы укажете его, маршрутизатор не будет уничтожать ваш компонент при отмене его.