javascript - 如何使用 EVERY 定位所有将此属性设置为 FALSE 的项目
问题描述
我在项目中的 Select all 功能上使用了 EVERY 方法。
作为我的复选框上的 onChange 侦听器,我的函数运行此代码以查看每个对象上的 canWrite 的值是否设置为 true/false
checkSelected() {
let testWrite = this.modalData.columnPermissions.every(function (item)
return item.canWrite;
});
this.isEveryWriteSelected = testWrite;
}
但是,模型的范围已更改为包含一个附加属性“IDM=true/false”- 无法选择 IDM 项目,因此目前此侦听代码现在永远不会触发 true。
我正在尝试将我的功能调整为现在仅检查 canWrite=true 如果项目包含 IDM=false
我可以通过忽略 item.IDM=false 在这种情况下使用 EVERY 吗?
已尝试添加 if 语句作为测试,但这并没有解决我的问题
let testWrite = this.modalData.columnPermissions.every(function (item) {
if (!item.IDM) {
return item.canWrite;
}
});
我的 HTML - Angular 2 如下所示:
这是正在侦听 isEveryWriteSelected 的全选复选框
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="customCheck1c" [(ngModel)]="isEveryWriteSelected" name="isEveryWriteSelected" (change)="selectAll('Write', isEveryWriteSelected)" [disabled]="modalData.role != 1 || roleConfirm">
<label class="custom-control-label" for="customCheck1c"><span>Select All</span></label>
</div>
虽然每个呈现的复选框都有一个调用上述函数的 on change 事件
<div class="custom-control custom-checkbox" *ngIf="!column.IDM">
<input type="checkbox" class="custom-control-input" id="customCheck{{column.$id}}-write" name="customCheck{{column.$id}}-write" [(ngModel)]="column.canWrite" [checked]="column.canWrite" [disabled]="modalData.role != 1 || roleConfirm" (change)="checkSelected()">
<label class="custom-control-label" for="customCheck{{column.$id}}-write"><span class="hideMe"> </span></label>
</div>
解决方案
如果我理解正确,您需要检查所有具有canWrite
true
或IDM
true
let testWrite = this.modalData.columnPermissions.every(function (item) {
return item.canWrite || item.IDM;
});
推荐阅读
- javascript - 每次单击后更改容器中的所有 Div 颜色
- r - H2O randomForest中的多类分类
- bash - 将文件内容转换为 bash 中的特定输出
- python - 将外部 numpy 数组值绑定到密集层激活
- android - 当应用程序在 Flutter 中被杀死时如何关闭通知
- javascript - useMemo 不阻止组件重新渲染
- node.js - 从 JSON 创建 TS 类实例时是否可以处理未知属性?
- java - 如何安全地连接到 Java 中的 MySQL 数据库(只读)?
- c# - 反转格式字符串并确定正确的结果
- java - 对特定类型的任意对象的实例方法的确切引用是什么?