Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular Ionic 3 formarray验证动态单选按钮组_Angular_Ionic Framework_Ionic3 - Fatal编程技术网

Angular Ionic 3 formarray验证动态单选按钮组

Angular Ionic 3 formarray验证动态单选按钮组,angular,ionic-framework,ionic3,Angular,Ionic Framework,Ionic3,我正在尝试验证从数组对象动态创建的单选按钮组,我希望以我发布的问题寻求答案的形式对其进行验证,但我没有得到澄清,再次进行了一些研究,发现本文遵循了它的线索,找到了formArrayName,但无法实现验证 <form[formGroup]="form"> <ion-select formControlName="type"> <ion-option value="1">Full Time</ion-option> <ion

我正在尝试验证从数组对象动态创建的单选按钮组,我希望以我发布的问题寻求答案的形式对其进行验证,但我没有得到澄清,再次进行了一些研究,发现本文遵循了它的线索,找到了formArrayName,但无法实现验证

<form[formGroup]="form">
  <ion-select formControlName="type">
    <ion-option value="1">Full Time</ion-option>
    <ion-option value="2">Part Time</ion-option>
  </ion-select>

  <div formArrayName="employee_details">
    <ion-row class="rows" *ngFor="let employee of employee;  let rowIndex = index">
      <ion-col text-center="text-center" col-6="col-6">
        [ {{employee.id}} ]
        <br> {{employee.name}}
      </ion-col>
      <ion-col class="rows last" col-6="col-6">
        <ion-list class="row" no-lines="no-lines" radio-group="radio-group">
          <ion-item col-4="col-4">
            <ion-radio class="radio " mode="md" value="Paid"></ion-radio>
          </ion-item>
          <ion-item col-4="col-4">
            <ion-radio class="radio " mode="md" value="Unpaid"></ion-radio>
          </ion-item>

        </ion-list>
      </ion-col>
    </ion-row>
  </div>

</form>

全场比赛结束时间
兼任
[{{employee.id}}]

{{employee.name}
JS

从'@angular/forms'导入{FormBuilder、FormGroup、FormControl、FormArray、Validators};
类类型{
公共名称:字符串;
公共id:string;
}
...
班级员工{
公共名称:字符串;
公共id:string;
}
...
雇员:雇员=[{
id:1,
名称:“emp1”
}, {
id:2,
名称:“emp2”
}, {
id:3,
名称:“emp3”
}];
表格:表格组;
this.form=new FormGroup({
“类型”:新FormControl(null,[Validators.required]),
“员工详细信息”:新表格([])
});
Object.keys(this.employee).forEach(函数(键,索引){
控制台日志(键);
//问题就在这里
const control=新表单控件(null,需要验证程序);
(this.form.get('employee_details')).push(control);
});

您可以简单地将
映射到数组中,然后为每个元素创建一个
FormControl

试试这个:

this.form = new FormGroup({
  type: new FormControl(null, [Validators.required]),
  employee_details: new FormArray([this.employee.map(emp => new FormControl(null, Validators.required))])
});

您可以简单地通过数组
映射
,然后为每个元素创建一个
FormControl

试试这个:

this.form = new FormGroup({
  type: new FormControl(null, [Validators.required]),
  employee_details: new FormArray([this.employee.map(emp => new FormControl(null, Validators.required))])
});

这不是正式安排,但肯定会对您有所帮助

.html

<form [formGroup]="form">
<ion-row class="rows" *ngFor="let detail of details; let i = index">
    <ion-col text-center="text-center" col-6="col-6">
        {{your_data}}
    </ion-col>
    <ion-col class="rows last" col-6="col-6">
        <ion-list class="row" no-lines="no-lines" radio-group="radio-group" formControlName="action{{i}}">
            <ion-item col-4>
                <ion-radio class="radio true" mode="md" value="true"></ion-radio>
            </ion-item>
            <ion-item col-4>
                <ion-radio class="radio false" mode="md" value="false"></ion-radio>
            </ion-item>
            <ion-item col-4>
                <ion-radio class="radio " mode="md" value="not sure"></ion-radio>
            </ion-item>
        </ion-list>
    </ion-col>
</ion-row>
<button ion-button (click)="submit()" [disabled]="!form.valid">Submit</button>
</form>

变量“i”刚刚用于生成0,1,2,3以与控件名相加。您可以使用自己的方式来执行此操作,但需要循环

这不是正式安排,但肯定会对你有所帮助

.html

<form [formGroup]="form">
<ion-row class="rows" *ngFor="let detail of details; let i = index">
    <ion-col text-center="text-center" col-6="col-6">
        {{your_data}}
    </ion-col>
    <ion-col class="rows last" col-6="col-6">
        <ion-list class="row" no-lines="no-lines" radio-group="radio-group" formControlName="action{{i}}">
            <ion-item col-4>
                <ion-radio class="radio true" mode="md" value="true"></ion-radio>
            </ion-item>
            <ion-item col-4>
                <ion-radio class="radio false" mode="md" value="false"></ion-radio>
            </ion-item>
            <ion-item col-4>
                <ion-radio class="radio " mode="md" value="not sure"></ion-radio>
            </ion-item>
        </ion-list>
    </ion-col>
</ion-row>
<button ion-button (click)="submit()" [disabled]="!form.valid">Submit</button>
</form>


变量“i”刚刚用于生成0,1,2,3以与控件名相加。您可以使用自己的方式来执行此操作,但需要循环

我不太明白你想在这里实现什么。你能解释一下它是什么吗?单选按钮组是动态生成的,我想在表单submitti上验证它。我没有完全理解你在这里想要实现的目标。你能解释一下它是什么吗?单选按钮组是动态生成的,我想在表单提交时对其进行验证。你能解释一下名称变量吗?我有点困惑于将其映射到用于更新的HTMLTanks。我正在检查是否必须将其添加到html
[formControlName]=“employee.id”中
Error:Uncaught(承诺中):TypeError:无法读取未定义属性的“map”感谢您的帮助我有一个这样的问题。fom加载到构造函数上,数组加载到select change上,并且在该时间生成,只有它能工作吗?@Shaik,如果数组是在select change上生成的,然后它将无法工作,因为模板将在这之前渲染。首先,您将如何接收要更改的选项。您能用名称变量解释我吗?我对将其映射到用于更新的HTMLTanks有点困惑。我正在检查是否必须将此添加到html
[formControlName]=“employee.id”
错误:未捕获(承诺中):TypeError:无法读取undefinedthanks的属性“map”谢谢您的帮助我有一个类似的问题。fom在加载时加载到构造函数,数组在选择更改时加载,并且在当时也生成了该数组,只有它能工作吗?@Shaik,如果数组是在选择更改时生成的,然后它将无法工作,因为模板将在这之前渲染。首先,您将如何接收要更改的选项。只是一个小的更改,我添加null而不是“i bro上面有一个轻微的问题,正如我今天所了解的,第一次加载setControl时,当您更改并重新加载时,一切都很好。然后,出现了一个问题,因为它会创建另一组controlError:有没有将FormControl实例附加到名为“action0”的FormControl元素,只是我添加了null而不是“i bro”的小更改上面有一个小问题,正如我今天所了解的,第一次加载setControl时,当您更改并重新加载时,一切都很好,然后出现了一个问题,因为它创建了另一组controlError:没有名为“action0”的form控件元素附加FormControl实例