从表单控件Angular 2列表中订阅特定表单控件值更改

时间:2017-12-20 10:37:08

标签: angular angular-forms

我有一个表单,其中我有一些字段,如字段A,字段B,字段C,FieldD和许多其他字段。用户可以根据需要创建我的字段。但是我只想为字段A和字段B订阅valuechange。我试着在整个表单上使用valuechange,它工作正常,但是当表单很大时订阅整个表单的值更改是昂贵的。所以有任何方法可以有选择地订阅一个表单控件数组。这是想要我试过< / p>

&#13;
&#13;
this.form.subscribe(value => { 
valueA = this.form.get('fieldA').value;
valueB = this.form.get('fieldB').value
})
&#13;
&#13;
&#13;  ,但这很昂贵。非常感谢

由于

2 个答案:

答案 0 :(得分:1)

使用angular更好的自定义NgModel,您可以定义一个模型对象或变量并将其分配给您输入如下:

prenom: string= 'John';


<input [(ngModel)]="prenom">

答案 1 :(得分:0)

反应表格

debounceTime 将在给定的毫秒后进行订阅。 如果不需要,请忽略。

distinctUntilChanged 仅强制订阅实际值更改。 如果不需要,请忽略。

ngOnInit(){
     this.form.controls['form_control_name']
                .valueChanges
                .debounceTime(MilliSeconds)
                .distinctUntilChanged()
                .subscribe(val => {

                  });
}

您只需订阅所需控件的值更改。对于两个控件,请使用:

  this.form.controls['fieldA']...
   this.form.controls['fieldB']...