3

想知道如何在 ngmodel 中为动态复选框设置二维数组?

我有一个带有多个复选框的超级管理员的角色和权限设置表单。 在此处输入图像描述 如何区分模型名称与角色 ID 和权限 ID。我需要通过数组中的模型名称传递角色 ID 和权限 ID。

例如:[(ngModel)]="permission[role.id][per.id]"

有没有办法在表单中为 ngmodel 分配 2d 值?

期待早日回复。

提前致谢。

4

1 回答 1

2

由于ngModel是获取 2 路绑定系统的指令。

您可以轻松地执行以下语法:

[(ngModel)]="permission[role.id][per.id]"

其中权限是一个空数组,最初定义为:

permission = []

或者

permission = [[]]

您的权限变量将是一个多维数组。

在此之后,如果您尝试使用 ngModel

[(ngModel)]="permission[role.id][per.id]"

这将导致一个未定义的问题,因为 ngModel 不仅从它必须显示的输入中获取值,这也是 2 路绑定的工作方式。

为了避免由于未定义而在渲染时出现问题,我们必须最初将虚拟数据分配给权限数组。

this.permission = new Array(this.numberOfRoles).fill(0);
    for (let j = 0; j < this.numberOfRoles; j++) {
      this.permission[j] = new Array(this.numberOfPermission).fill(0);
    }

这解决了未定义的问题,如下所示

在此处输入图像描述

于 2018-02-07T09:28:42.110 回答