AngularJS判断ng-repeat数组是否存在符合截止日期条件项并输出单个布尔值
你可以利用JavaScript数组原生的some()方法实现需求,该方法只要检测到数组中有任意一项满足判断条件就会返回true,所有项都不满足才返回false,完全匹配你需要的逻辑,修改方案如下:
1. 修改JavaScript逻辑
在原有JS代码基础上新增一个方法,直接计算最终要输出的布尔值:
// 新增方法:判断是否存在满足条件的项目 $scope.hasMatchingProject = function() { return $scope.data.project.some(function(prj) { // 对应你的判断条件:due date <= 当前日期 return $scope.getDueDate(prj.dueDate) <= $scope.date; }); };
2. 修改HTML代码
删除原有遍历输出的逻辑,直接绑定上述方法的返回值即可:
<!-- 写法1:直接输出布尔值 --> <div>{{ hasMatchingProject() }}</div> <!-- 写法2:按需显式输出true/false文本 --> <div ng-if="hasMatchingProject()">true</div> <div ng-if="!hasMatchingProject()">false</div>
按照你给出的测试数据,只要当前日期晚于等于2021-10-02,最终就会输出你预期的true结果。
内容的提问来源于stack exchange,提问作者zugi
相关产品推荐
相关产品推荐

