我想創建一個功能,從角度輸入標簽撤消和重做值。如果我在輸入中輸入Hello ,我應該做的如下:
- 單擊撤消按鈕:顯示地獄
- 單擊撤消按鈕:顯示hel
- 單擊重做按鈕:顯示地獄
- 單擊重做按鈕:顯示你好
請幫忙。謝謝
uj5u.com熱心網友回復:
您可以在您的 .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)];
}
在html中:
<div>
<input
type="text"
[(ngModel)]="inputValue"
(ngModelChange)="onChanges($event)"
/>
<br />
<button (click)="undo()">Undo</button><button (click)="redo()">Redo</button>
</div>
你只需要找到一個你會清除的點this.inputStates(比如 onSubmit 或類似的東西)。
uj5u.com熱心網友回復:
系統已經在輸入中提供了功能。您可以嘗試控制 z 按鈕和控制 y 按鈕。
如果你想創建你自己的,那么你必須添加用戶輸入欄位和值的映射并監聽撤消和重做事件,并在此基礎上通過上下陣列來執行撤消和重做
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/443233.html
標籤:javascript 数组 有角度的 逻辑
上一篇:合并2個陣列而不覆寫
