Quiero crear una funcionalidad que deshaga y rehaga el valor de la etiqueta de entrada en angular. Lo que se supone que debo hacer es lo siguiente si ingreso Hola en la entrada:
Por favor ayuda. Gracias
Puedes hacer en tu .ts:
inputValue: string = ''; inputStates: string[] = []; undoStats: number = 0; onChanges(change) { this.inputStates.push(change); this.undoStats = 0; } undo() { this.undoStats++; this.inputValue = this.inputStates[this.inputStates.length - (this.undoStats + 1)]; } redo() { if (this.undoStats > 0) this.undoStats--; if (this.undoStats >= 0) this.inputValue = this.inputStates[this.inputStates.length - (this.undoStats + 1)]; }y en html:
<div> <input type="text" [(ngModel)]="inputValue" (ngModelChange)="onChanges($event)" /> <br /> <button (click)="undo()">Undo</button><button (click)="redo()">Redo</button> </div> Solo necesitará encontrar un punto en el que borrará this.inputStates (como onSubmit o algo así).
Existe la funcionalidad ya presente por el sistema en la entrada. Puede probar el botón de control z y el botón de control y.
Si desea crear uno propio para entonces, debe agregar el mapeo de los campos y valores de entrada del usuario y escuchar los eventos de deshacer y rehacer y, en función de eso, deshacer y rehacer subiendo y bajando la matriz.