Angular 复选框值不以数组形式出现,角度

Angular 复选框值不以数组形式出现,角度,angular,Angular,当我选中复选框时,其值将显示为另一个数组,并且不会根据for进行更新,userdays仅在它位于员工窗体之外时才起作用,如何使它在放入员工窗体时起作用,在skills[] 由于要在每个formgroup中添加userdays数组,请首先在newEmployee formgroup中创建控件的userdays数组 组件技术 然后从html中传递选定的employees formGroup索引 <label class="checkbox-inline" *ngFor="let day of

当我选中复选框时,其值将显示为另一个数组,并且不会根据for进行更新,userdays仅在它位于员工窗体之外时才起作用,如何使它在放入员工窗体时起作用,在skills[]


由于要在每个formgroup中添加userdays数组,请首先在newEmployee formgroup中创建控件的userdays数组

组件技术

然后从html中传递选定的employees formGroup索引

<label class="checkbox-inline" *ngFor="let day of days; ">
    <input type="checkbox" formControlName="{{ day.name }}" name="{{ day.name }}"
        (change)="onChange(empIndex,day.value , $event.target.checked)" />{{ day.value }}
</label>

您是否希望工作日在以下各组技能下?例如,在上面给出的图像中,如果“添加”按钮单击三次,您是否希望userdays数组包含在这三个数组中?是的,确切地说,当userdays位于员工之外时,我的代码正在工作,但当我将其放入员工数组时,它不工作。您可以将其用作参考,需要对userdays进行唯一控制。要将数据保存在每个单独的项目中,而这些项目现在只在第一个项目中起作用。是的,它只在第一个项目中起作用,你所说的唯一控制是什么意思?谢谢你的回答兄弟。。我应该将empIndex传递给onChange函数,而不是使用这个.empForm.getemployees.value[0],它应该是我在评论部分提供的链接中的这个.empForm.getemployees.value[empIndex]。欢迎兄弟。是的,有时候你犯了个小错误。
<label class="checkbox-inline" *ngFor="let day of days; ">
    <input type="checkbox" formControlName="{{ day.name }}" name="{{ day.name }}"
        (change)="onChange(empIndex,day.value , $event.target.checked)" />{{ day.value }}
</label>
onChange(empIndex, day: string, isChecked: boolean) {
    const dayFormArray = (this.empForm.get("employees") as FormArray)
      .at(empIndex)
      .get("userdays") as FormArray;
    if (isChecked) {
      dayFormArray.push(new FormControl(day));
    } else {
      let index = (dayFormArray.value as []).findIndex(item => item === day);
      dayFormArray.removeAt(index);
    }
  }