订阅一组表单控件 - Angular 2/4

问题描述 投票:1回答:1

有没有办法订阅一个表单控件数组,而不是做多个get。在我的场景中我得到一个对象,如图所示enter image description here我想订阅textfielda,textfieldb和numbera值只改变。我试过订阅整个表格的价值变化(工作正常),但它是一个昂贵的操作,所以有任何解决方法来实现这一点。这个领域是动态的,所以我不能使用ngmodel。任何帮助表示赞赏。

angular angular2-forms angular4-forms
1个回答
0
投票

这就是我从我的代码中复制并编辑的内容。

表单数组中的每个表单组都有一个数据类型:

newFormArray.push(this.fb.group({
  datatype: datatype,
  value: value
}));

这些是api调用的值,后端连接到db。

你现在做的是:

this.form.valueChanges.subscribe((item: any) => {
  if(item.array[i].datatype === 'textarea'){ //do something
  switch (item.array[i].datatype) { // or with a switch
        case 'textarea':
          //do textarea
          break;

HTML中的Ofc:

<div *ngIf="item.datatype === 'textarea'"> // show textarea
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.