gpt4 book ai didi

javascript - AngularJS ng-show 如果对象数组中的属性设置为 false

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:01:14 26 4
gpt4 key购买 nike

如果 array 中没有对象的特定属性设置为 false,我想隐藏 div

属性如下所示:

$scope.myObjArray = [
{"Id":"1","IsBuiltIn":true},
{"Id":"2","IsBuiltIn":true}
];

如果 myObjArray 中没有将 IsBuiltIn 设置为 false 的对象,我想隐藏我的 div .所以上面的array应该隐藏div。下面应该显示它(因为至少有一个对象将 IsBuiltIn 设置为 false):

$scope.myObjArray = [
{"Id":"1","IsBuiltIn":true},
{"Id":"2","IsBuiltIn":true},
{"Id":"3","IsBuiltIn":false}
];

我尝试使用 ForEach 解决这个问题,但没有成功:

<div ng-show="myObjArray.ForEach(e, function(){e.IsBuiltIn})">
Hello, World!
</div>

这是我的 plnkr .

最佳答案

在 Controller 中,使用 Array#some 创建一个函数来检查数组中的任何对象是否具有属性 IsBuiltInfalse 值|

$scope.containsFalsy = (arr) => arr.some(o => o.IsBuiltIn === false);

这是使用 ES6 arrow function句法。上面的函数等同于

$scope.containsFalsy = function (arr) {
return arr.some(function (obj) {
return obj.IsBuiltIn === false;
});
};

从 View 中调用函数

<div ng-hide="containsFalsy(myObjArray)">

Plunker Demo

var app = angular.module('myApp', []);

app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.myObjArray = [{
"Id": "1",
"IsBuiltIn": true
}, {
"Id": "2",
"IsBuiltIn": true
}];

$scope.myObjArray1 = [{
"Id": "1",
"IsBuiltIn": true
}, {
"Id": "2",
"IsBuiltIn": true
}, {
"Id": "3",
"IsBuiltIn": false
}];

$scope.containsFalsy = (arr) => arr.some(o => o.IsBuiltIn === false);
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myApp">
<div ng-controller="MainCtrl">
<div ng-hide="containsFalsy(myObjArray)">
Hello, World!
</div>


<div ng-hide="containsFalsy(myObjArray1)">
Can you see me?
</div>
</div>
</div>

关于javascript - AngularJS ng-show 如果对象数组中的属性设置为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37587736/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com