Ees*_*esa 11 typescript angular
在双向数据绑定中,如果用户决定取消当前编辑,该怎么办?如何在角度2中实现这一目标?
考虑以下代码:
import {Component} from 'angular2/core';
@Component({
selector: 'my-app',
template: `Name: {{ name }}<br>
<input *ngIf='editMode' type="text" [(ngModel)]='name' /><br>
<button *ngIf='!editMode' (click)='editMode = !editMode' >Edit</button>
<button *ngIf='editMode' (click)='editMode = !editMode' >Save</button><br>
<button *ngIf='editMode' (click)='editMode = !editMode' >Cancel</button>`
})
export class AppComponent {
public name = 'Essa';
public editMode false;
}
Run Code Online (Sandbox Code Playgroud)
我希望在用户按下取消按钮时恢复旧值.
这里以plunker为例.
我认为没有直接的支持.只需存储该值并在取消时恢复它
import {Component} from 'angular2/core';
@Component({
selector: 'my-app',
template: `Name: {{ name }}<br>
<input *ngIf='editMode' type="text" [(ngModel)]='name' /><br>
<button *ngIf='!editMode' (click)='startEdit()' >Edit</button>
<button *ngIf='editMode' (click)='save()' >Save</button><br>
<button *ngIf='editMode' (click)='cancel()' >Cancel</button>`
})
export class AppComponent {
public name = 'Essa';
public editMode false;
startEdit() {
this.oldName = this.name;
this.editMode = !this.editMode;
}
save() {
this.editMode = !this.editMode;
}
cancel() {
this.editMode = !this.editMode;
this.name = this.oldName;
}
}
Run Code Online (Sandbox Code Playgroud)
的方法startEdit,save并且cancel不需要被明确地添加到组件.绑定可以包含多个分隔的语句;但是如果它是多个语句,我更喜欢这种方法.
| 归档时间: |
|
| 查看次数: |
6393 次 |
| 最近记录: |