Arrays 将逗号分隔列表绑定到9中的复选框
在被动形式中,我有一个数组,我使用以下语法将复选框列表绑定到该数组: 数组的结构是{id:number,name:string} TSArrays 将逗号分隔列表绑定到9中的复选框,arrays,angular,typescript,angular-reactive-forms,Arrays,Angular,Typescript,Angular Reactive Forms,在被动形式中,我有一个数组,我使用以下语法将复选框列表绑定到该数组: 数组的结构是{id:number,name:string} TS ngOnInit(): void { this.initFCForm(); this.addCheckboxes(); } initFCForm(): void { this.fcForm = this.formBuilder.group({ frequency : new FormControl('', [Validators.required]),
ngOnInit(): void {
this.initFCForm();
this.addCheckboxes();
}
initFCForm(): void {
this.fcForm = this.formBuilder.group({
frequency : new FormControl('', [Validators.required]),
rules: new FormArray([])
});
}
get rulesFormArray() {
return this.fcForm.controls.rules as FormArray;
}
private addCheckboxes() {
this.businessrules.forEach(() => this.rulesFormArray.push(new FormControl(false)));
}
this.fc.rules.patchValue([1,3])
HTML
<label class="col-md-7" formArrayName="rules"
*ngFor="let rule of rulesFormArray.controls; let i = index">
<input type="checkbox" [formControlName]="i">
{{businessrules[i].name}}
</label>
执行此操作时,.fc.rules.patchValue([1,3])会将值1设置为规则FormArray的第一个控件,将值3设置为规则FormArray的第二个控件,但不会将值设置为第三个控件 复选框formcontrol需要一个布尔值(true或false),在这里,当使用patch设置1和3时,值会自动“转换”为true,因为这些是真实值 如果要填充第一个和第三个值,请尝试以下操作:
这个.fc.rules.patchValue([true,null,true])您应该将复选框的
formControl
设置为rule
属性,而不是带有当前索引的formControlName
。谢谢@thib\u\o!