angular 2将模板中的FormControl作为局部变量

时间:2016-10-08 19:16:45

标签: angular form-control

我在角度2模型驱动的表单中使用,当用户离开输入元素时,我想立即在服务器中更新数据(自动保存)。

因此,我的解决方案是使用(blur)事件并将表单控件传递给函数,然后检查dirty属性是否为true,然后更新服务器。

我该怎么做?

提前致谢

 <input type="text"
 formControlName="firstName"
 [(ngModel)]="contact.firstName"
 #ctrl=[currentFormControl]
 (blur)="onBlur(ctrl)"
                    />
frm.component.ts:

  onBlur(formControl: FormControl){

      if(formControl.dirty){
          //update server
          formControl.reset();
      }

  }

2 个答案:

答案 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