我在角度2模型驱动的表单中使用,当用户离开输入元素时,我想立即在服务器中更新数据(自动保存)。
因此,我的解决方案是使用(blur)
事件并将表单控件传递给函数,然后检查dirty
属性是否为true,然后更新服务器。
我该怎么做?
提前致谢
<input type="text"
formControlName="firstName"
[(ngModel)]="contact.firstName"
#ctrl=[currentFormControl]
(blur)="onBlur(ctrl)"
/>
onBlur(formControl: FormControl){
if(formControl.dirty){
//update server
formControl.reset();
}
}
答案 0 :(得分:3)
非常简单
<form *ngIf="contactForm" (ngSubmit)="onSubmit()" [formGroup]="contactForm">
<div class="col-sm-12">
<div class="form-group col-sm-4">
<input type="text"
formControlName="firstName"
[(ngModel)]="contact.firstName"
(blur)="onBlur(contactForm.controls['firstName'])"
/>
</div>
答案 1 :(得分:0)
我不知道用户失控的含义是什么,但是角度路由器内置了一个名为CanDeactivate的功能,它允许您在任何条件下停止导航或执行保存数据等操作。
在此处参考示例应用程序 - angular.io/resources/live-examples/router/ts/plnkr.html