Сохранять / восстанавливать частичные значения формы при изменении маршрута в Angular - PullRequest
1 голос
/ 12 марта 2020

Как бы вы реализовали сохранение частично заполненных форм при навигации между маршрутами?

Например. Пользователь начинает заполнять форму, но решает перейти на другой маршрут и затем go вернуться к исходной форме.

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

Я ищу универсальное c решение для всех форм в приложении.

Все мои формы имеют:

  constructor(private fb: FormBuilder, private router: Router) {
    this.form = fb.group({
 ...

Я попытался создать RouteGuard, реализующий интерфейс CanDeactivate.
Это позволило мне подключиться к событию выгрузки компонента, увидеть состояние component.form.pristine и в конечном итоге сохранить от component.form.value до localStorage.

Так что теперь все формы в приложении, использующие эту защиту, сохраняют свои значения в локальном хранилище.

Следующим шагом будет загрузка данных из этого хранилища при создании компонентов, имеющих формы.

Я хочу прикрепить к чему-то, что вызывается для каждого компонента после его конструктора.

Я мог бы использовать средства распознавания, но в своем приложении я не использую их в гене. ral (я предпочитаю, чтобы часть макета была видимой + индикатор прогресса).

Может быть, я мог бы расширить FormBuilder?
Каков обычный шаблон в этом общем случае?

...