在ng-class中用于数组的表达式

时间:2015-02-06 19:36:43

标签: javascript arrays angularjs

我的控制器$scope ...

上有一个数组
$scope.myElements = [false, false, true, false, true, false];

...如果所述数组中的至少一个元素为真,则div标签上的类应为firstClass,否则为secondClass。使用ng-class ...

轻松实现
<div ng-class="anyElementTrue() ? 'firstClass' : 'secondClass'">

......还有帮助函数......

$scope.anyElementTrue = function () {
    for (var i = 0; i < $scope.myElements.length; i++) {
        if ($scope.myElements[i]) return true;
    }
    return false;
}

是否有一种更简单的方法来实现与表达式相同的方法?像这样:

<div ng-class="angular.any(myElements) ? 'firstClass' : 'secondClass'">

there is no angular.any除外。想法?

1 个答案:

答案 0 :(得分:3)

你可以这样做:

<div ng-class="myElements.indexOf(true) > -1 ? 'firstClass' : 'secondClass'">