【发布时间】:2019-02-10 08:30:42
【问题描述】:
这是我用 ngFor 生成的复选框
<div *ngFor="let check of feature.tests; let i = index" class="col-md-12">
<mat-checkbox [checked]="i <= map[l][k]" [(ngModel)]="check.checked"
(change)="checkAll($event.checked, i ,k, l)"
(ngModelChange)="changed(i)">{{check.name}} - {{feature.type}}
</mat-checkbox>
</div>
当我点击一个复选框时,所有具有较低索引的复选框也会被选中,而具有较高索引的复选框则不会被选中
所以我的计数器应该是 2,只需单击 1 次
这里是我用来检查带有先前索引的复选框的功能
checkAll(c, i: number, k, l) {
if (c) {
this.map[l][k] = i;
} else {
this.map[l][k] = i - 1;
}
}
我想计算检查了多少个复选框并在我的 HTML 模板中显示结果,我该如何实现?
【问题讨论】:
-
你能把
*ngFor也发一下吗? -
是的,我编辑了我的帖子。
-
在您的 checkALL 函数中,如果为 true,您可以尝试 c.target.checked,然后在变量中维护所有检查值的计数记录,您将获得计数。
-
feature.tests似乎包含所有复选框,对吧?因此,您可以应用这样的过滤器:feature.tests.filter(i => i.checked).length;。这将过滤所有选中的复选框并计算它们。您可以在您的角度视图中使用吸气剂来完成此操作。
标签: javascript angular checkbox