javascript - 如何以 Angular 获取矩阵表中选定的复选框

标签 javascript angular typescript

我使用 html 设计了一个矩阵表,如链接所示:

<h1>Responsive table of input-checkbox-matrix type</h1>
<h3>Permissions Table</h3>
<table class="responsive-table-input-matrix">
    <thead>
    <tr>
        <th></th>
        <th>Owner</th>
        <th>Administrators</th>
        <th>Managers</th>
        </tr>
    </thead>
    <tbody>

    <tr>
        <td>Add</td>
        <td><input type="checkbox"></td>
        <td><input type="checkbox"></td>
        <td><input type="checkbox"></td>
                </tr>
    <tr>
        <td>Edit</td>
        <td><input type="checkbox"></td>
        <td><input type="checkbox"></td>
        <td><input type="checkbox"></td>
                </tr>
    <tr>
    <td>Delete</td>
        <td><input type="checkbox"></td>
        <td><input type="checkbox"></td>
        <td><input type="checkbox"></td>

    </tr>
    </tbody>
</table>

现在我需要为表中的每一列和行设置 id,如果用户单击经理具有编辑权限的复选框,我需要将该值存储在数组中。同样,最后我需要一个值数组,这些值全部在单行中选择,例如编辑。

如何做到这一点?有人可以帮忙吗? 还有如何在 *ngFor 中实现这里?在此它是硬编码的。但我需要它是动态的。

提前致谢。

最佳答案

在您的 .ts 文件中创建一个对象数组

hasAdd = [
  {value: 'Owner', checked: false},
  {value: 'Admin', checked: false},
  {value: 'Manager', checked: false}
];
hasEdit = [
  {value: 'Owner', checked: false},
  {value: 'Admin', checked: false},
  {value: 'Manager', checked: false}
];
hasDelete = [
  {value: 'Owner', checked: false},
  {value: 'Admin', checked: false},
  {value: 'Manager', checked: false}
];

现在在您的模板中,

<tr>
    <td>Add</td>
    <td *ngFor="let a of hasAdd">
      <input name="hasAdd" [(ngModel)]="a.checked" type="checkbox">
    </td>
</tr>
<tr>
    <td>Edit</td>
    <td *ngFor="let e of hasEdit">
      <input name="hasEdit" [(ngModel)]="e.checked" type="checkbox">
    </td>
</tr>
<tr>
    <td>Delete</td>
    <td *ngFor="let d of hasDelete">
      <input name="hasDelete" [(ngModel)]="d.checked" type="checkbox">
    </td>
</tr>

要获取选定的选项,您可以将每个对象数组传递给此函数。

selectedOptions(myarray) { 
return myarray
          .filter(opt => opt.checked)
          .map(opt => opt.value)
 }

关于javascript - 如何以 Angular 获取矩阵表中选定的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49436139/

相关文章:

javascript - 强制下一个界面键与前一个键具有相同的类型

typescript - "extends never"有什么用?

javascript - 我的 CSS 没有加载到我的 Web 应用程序中

javascript - 简单 JavaScript 游戏的陡坡体积算法

Angular 通过@Output() 向父组件传递参数

angular - 如何在获得代码覆盖率的同时排除规范文件 [Angular]

javascript - 使用 WebWorker 时,从导入其他类的文件中导入类会导致 Angular 8 编译失败

javascript - 在动态 html 中呈现外部、内部、内联 css 样式之间的区别

javascript - 更改 javascript 函数,以便 php 页面将作为弹出窗口出现

javascript - Angular Ngrx : Getting & displaying list of options from Java API