0
我有一個相當簡單的雙向數據綁定的輸入字段,並希望有輸入字段綁定的值返回到它以前是什麼時,「取消「按鈕被點擊。取回舊值取消輸入字段
代碼是目前這樣的:
HTML:
<div *ngIf="editModeToggle" class="five wide column left floated">
<div class="edit-on">
<input type="text" class="header" [(ngModel)]="item.name">
</div>
</div>
<div *ngIf="!editModeToggle" class="five wide column left floated">
<div class="header">{{item.name}}</div>
</div>
<div *ngIf="editModeToggle" class="one wide column">
<a (click)="saveChanges(item)"><i class="save icon"></i></a>
</div>
<div *ngIf="editModeToggle" class="one wide column">
<a (click)="cancelEdit()"><i class="cancel icon"></i></a>
</div>
<div *ngIf="!editModeToggle" class="one wide column">
<a (click)="edit(item)"><i class="edit icon"></i></a>
</div>
TS:
edit(item: any) {
this.editModeToggle = true;
this.oldItemData = this.item;
console.log('------ edit activate -------')
console.log('old item:', this.oldItemData.name);
console.log('item:', this.item.name);
}
saveSbuChanges(item: any) {
// some stuff happens
this.editModeToggle = false;
console.log('------ save -------')
console.log('old item:', this.oldItemData.name);
console.log('item:', this.item.name);
}
cancelEdit() {
this.editModeToggle = false;
this.item = this.oldItemData;
console.log('------ cancel -------')
console.log('old item:', this.oldItemData.name);
console.log('item:', this.item.name);
}
我會想到的是,item.name,用 「ABC」 初始化將返回當我點擊cancle時,ABC。相反,this.oldItemData.name接受新值。
控制檯日誌:
------ edit activate -------
old item: ABC
item: ABC
------ cancel -------
old item: ABCD
item: ABCD
我失去了什麼/我該怎麼甲肝取消值時被激活編輯模式恢復到什麼呢?
工作!曾經懷疑過類似的東西,但不知道如何製作實際的副本,非常感謝!甚至沒有更改this.item = this.oldItemDate部分 – m41n
這將銷燬任何Date對象。只有在根對象中沒有方法/日期對象的情況下才可以。 –
約定@GrégoryElhaimer,但是在這種情況下,他沒有任何此類成員。 – Faisal