我正在使用angular复选框来选择多个选项,并且试图在一个对象而不是数组中获取该复选框的值。我尝试了以下代码:
component.html file
<form [formGroup]="myForm">
<div class="form-group">
<div class="input-group">
<div *ngFor="let data of skillsArray">
<p><input type="checkbox" (change)="onChange(data.value, $event.target.checked)"> {{data.skill}}</p>
</div>
</div>
</div>
</form>
component.ts file
formValue(){
this.myForm = this.fb.group({
VFields: this.fb.array([])
});
}
// selectedValue:Object;
onChange(value: any, isChecked: boolean) {
const skillFormArray = <FormArray>this.myForm.controls.VFields;
if (isChecked) {
skillFormArray.push(new FormControl(value));
} else {
let index = skillFormArray.controls.findIndex(x => x.value == value)
skillFormArray.removeAt(index);
}
}
输出为:
{ “ VFields”:[ “ 1”, “ 2”, “ 3” ] }
但是我希望它像这样:
{ “ VFields”:“ 1,2,3” }
那我们该怎么做呢?
答案 0 :(得分:1)
在sdata上使用toString()方法。
您会得到理想的结果