Я использую реактивные формы Angular, и я нахожусь на пути к реализации функциональности Undo / Redo.
Я бы хотел «упаковать» последовательные изменения в одном поле в одно действие отмены. Я думаю, что для этого мне нужно будет вычислить какую-то дельту, возможно, используя библиотеку различий (например, this).
Позвольте мне объяснить это на примере:
- пользователь меняет поле «имя» на «Том»
- пользователь выбирает поле «фамилия» на «Кошка»
- пользователь меняет поле «имя» на «Джерри», пишет очень медленно или выходит и вводит поле несколько раз.
- пользователь нажимает Отменить.
Я хочу, чтобы действие «Отменить» восстановило значение «Том» в поле «имя», не передавая значения «Джерр», «Джер» и т. Д.
Это что-то, что можно сделать, только прикрепив к form.valuechange через преобразования Observable, или есть какая-то альтернатива, лучше подходящая для этой задачи?
У меня нет кода, которым можно поделиться, потому что в настоящее время я просто изучаю, как реализовать эту функцию, поэтому, пожалуйста, избавьте меня от мантры «покажи нам, что у тебя есть»;)
Спасибо!