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