如何在Angular中附加具有动态复选框数的ngModel?
我有一个包含复选框的动态编号的列表,每个复选框都有id属性如何在Angular中附加具有动态复选框数的ngModel?,angular,checkbox,Angular,Checkbox,我有一个包含复选框的动态编号的列表,每个复选框都有id属性 <li *ngFor='let i of someArray'> <input type="checkbox" id={{i}}> </li> 如果[(ngModel)]之前知道每个输入复选框,我可以将它们分配给这些数量众多的变量 但是,如何在保留双向绑定概念的同时,将复选框的动态数量附加到变量 我正在使用@angular/core 2.4.10。为此,您必须使用FormArray impor
<li *ngFor='let i of someArray'>
<input type="checkbox" id={{i}}>
</li>
如果[(ngModel)]之前知道每个输入复选框,我可以将它们分配给这些数量众多的变量
但是,如何在保留双向绑定概念的同时,将复选框的动态数量附加到变量
我正在使用@angular/core 2.4.10。为此,您必须使用
FormArray
import {FormGroup} from '@angular/forms';
constructor(private fb: FormBuilder) {}
public form: FormGroup = this.fb.group({
checkboxes: this.fb.array([])
});
然后可以从控件中循环:
<li *ngFor='let control of form.checkboxes.controls; let i = index'>
<input type="checkbox" id={{i}} [formControl]="control">
</li>
然后您可以通过执行
this.form.get('checkbox')来获取值。value
您必须使用FormArray
import {FormGroup} from '@angular/forms';
constructor(private fb: FormBuilder) {}
public form: FormGroup = this.fb.group({
checkboxes: this.fb.array([])
});
然后可以从控件中循环:
<li *ngFor='let control of form.checkboxes.controls; let i = index'>
<input type="checkbox" id={{i}} [formControl]="control">
</li>
然后您可以通过执行
this.form.get('checkbox')来获取值。value
与@Chrillewoodz所说的不同,您不必被迫使用表单数组,尽管我建议您使用它。否则你可以
<li *ngFor='let box of someArray; let i = index'>
<input type="checkbox" [id]="box" [(ngModel)]="someArray[i]">
</li>
与@Chrillewoodz所说的不同,您不必被迫使用表单数组,尽管我建议您使用它。否则你可以
<li *ngFor='let box of someArray; let i = index'>
<input type="checkbox" [id]="box" [(ngModel)]="someArray[i]">
</li>
可以在您不知道将出现多少控件或表单中有动态元素时使用
FormArray在本文中得到了很好的解释。可以在您不知道将出现多少控件或表单中有动态元素时使用
FormArray在这篇文章中有很好的解释我做了一次编辑,让它工作起来因为您使用index访问复选框,所以我的问题仍然是,当后台满足某些条件时,如何取消选中/选中这些复选框?@techcomp您只需抓取表单控件并调用
control.setValue(false)
,其中,control
是一个保存控件的变量。我做了一次编辑,使其工作因为您使用index访问复选框,所以我的问题仍然是,当后台满足某些条件时,如何取消选中/选中这些复选框?@techcomp您只需抓取表单控件并调用control.setValue(false)
,其中control
是一个保存控件的变量。是否有某种方法不通过索引访问它?否,它会抛出错误,因为Angular尝试访问动态创建的变量。如果不想使用formArray,则需要使用索引。是否有方法不通过索引访问它?否,它会引发错误,因为Angular尝试访问动态创建的变量。如果不想使用formArray,则需要使用索引。