角反应形式创建复选框矩阵

时间:2018-09-19 05:57:18

标签: angular multidimensional-array angular-reactive-forms

我坚持使用复选框来实现矩阵。

有4个静态列,并且有带标题的动态行。

enter image description here

如何通过此任务创建反应形式?

这样的动态行来了。

 @Input()
  set dealers(deal: Array<IDealer>) {
    deal.map(el =>
      this.roles.push(
        new FormGroup({
          dealerId: new FormControl(el.dealerId),
          roleIds: new FormArray([])
        })
      )
    );

,它以一种方式起作用。我需要选中控制器上的复选框。(编辑模式)

  toggleMe($event) {
    const t = this.userForm.get('roles') as FormArray;

    const roleName = $event.target.id.split('_')[0];
    const dealerId = $event.target.id.split('_')[1];
    const dealerRoleForm = t.value.filter(d => d.dealerId === dealerId)[0];

    if (dealerRoleForm.roleIds.includes(roleName)) {
      dealerRoleForm.roleIds = dealerRoleForm.roleIds.filter(
        v => v !== roleName
      );
    } else {
      dealerRoleForm.roleIds.push(roleName);
    }
  }

0 个答案:

没有答案