仅从Angular的Reactive From获取更改的值

时间:2018-10-08 12:15:09

标签: angular angular-reactive-forms valuechangelistener

我正在从事Angular-6项目。

我有许多结构不同的表格。我想要一个通用方法,该方法仅返回具有修改值修改过的FromControls ,而与Form结构无关。

我已经想到了一些方法。

一种方法是订阅每个 FormControl valueChanges()方法。但是缺点是弄乱了代码。

第二种方法是,我可以为每个 FormControl 将方法绑定到事件(更改),并检查其值是否更改。但这又不是最好的方法。

有什么办法可以适当地做到这一点?

1 个答案:

答案 0 :(得分:0)

使用带有所需控件的FormBuilder创建表单。

this.myForm = this.formBuilder.group({
    ctrl1: '',
    ctrl2: ''
});

为需要检测其更改的控件分配一个变量。

this.control1 = this.myForm.get('ctrl1');

使用一种方法来获取值更改:

getControlVal(val) 
{
   console.log(val)
}

然后在模板上,每个“ keyup”事件都传递控制值:

<form [formGroup]="myForm">
    <input formControlName="ctrl1" (keyup)="getControlVal(control1.value)" />
</form>