【问题标题】:How to use 2d array on ngmodel in angular 2?如何在角度 2 的 ngmodel 上使用 2d 数组?
【发布时间】:2017-01-11 08:07:56
【问题描述】:

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

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

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

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

期待尽快回复。

提前致谢。

【问题讨论】:

  • 你试过了吗?
  • 是的,但它不起作用。

标签: html angular multidimensional-array angular2-ngmodel


【解决方案1】:

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

您可以轻松地执行语法:

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

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

permission = []

permission = [[]]

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

在这之后,如果你尝试 ngModel

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

这将导致 undefined 问题,因为 ngModel 不仅从输入中获取值,它还必须显示 2-way binding 是如何工作的。

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

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);
    }

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

enter image description here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    • 2019-10-31
    • 1970-01-01
    • 2016-09-17
    • 2020-02-13
    相关资源
    最近更新 更多