Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript For循环通过自定义筛选结果_Javascript_Angularjs_Loops_Angularjs Filter - Fatal编程技术网

Javascript For循环通过自定义筛选结果

Javascript For循环通过自定义筛选结果,javascript,angularjs,loops,angularjs-filter,Javascript,Angularjs,Loops,Angularjs Filter,我有一个应用程序列表,我有一个自定义过滤器,用于获取指定字段的唯一值。我正在为每个唯一值重复复选框以筛选表 我需要使用唯一过滤器返回的值来执行for循环。这样我就可以有一个按钮,取消选中ng repeat中返回的所有复选框 我让它工作,但它通过所有的表值(数千)循环,而不仅仅是唯一的值 标记: <div ng-repeat="cat in applications | unique : 'Category'"> <label>

我有一个应用程序列表,我有一个自定义过滤器,用于获取指定字段的唯一值。我正在为每个唯一值重复复选框以筛选表

我需要使用唯一过滤器返回的值来执行for循环。这样我就可以有一个按钮,取消选中ng repeat中返回的所有复选框

我让它工作,但它通过所有的表值(数千)循环,而不仅仅是唯一的值

标记:

    <div ng-repeat="cat in applications | unique : 'Category'">
       <label>
           <input name="abc" type="checkbox" ng-model="$parent.FCategory[cat.Category]" ng-value="cat" ng-init="$parent.FCategory[cat.Category]=true">{{ cat.Category }}
       </label>
    </div>

    <input type="button" ng-click="uncheckAll()">Untick
JS,取消选中所有函数:

 $scope.uncheckAll = function () {
        for (var i = 0; i < $scope.applications.length; i++) {
            var item = $scope.applications[i].Category;
           $scope.FCategory[item] = false;

        }
    };
<div ng-repeat="cat in (uniqueApplications = (applications | unique : 'Category'))">
   <label>
       <input name="abc" type="checkbox" ng-model="$parent.FCategory[cat.Category]" ng-value="cat" ng-init="$parent.FCategory[cat.Category]=true">{{ cat.Category }}
   </label>
</div>

<input type="button" ng-click="uncheckAll(uniqueApplications)">
$scope.uncheckAll = function (list) {
    for (var i = 0; i < list.length; i++) {
        var item = list[i].Category;
       $scope.FCategory[item] = false;

    }
};
$scope.uncheckAll=函数(){
对于(变量i=0;i<$scope.applications.length;i++){
var item=$scope.applications[i].Category;
$scope.FCategory[item]=false;
}
};
问题是对于每个记录的“for(var i=0;i<$scope.applications.length;i++){”循环,我不知道如何将“$scope.applications.length”仅用于唯一的筛选结果

我能想出的最好的办法(这是行不通的)是

$scope.uncheckAll=函数(){
var a=$scope.applications;
对于(变量i=0;i<$filter('unique')(a,'Category')。长度;i++){
var item=$scope.applications[i].Category;
$scope.FCategory[item]=false;
}
};

解决此问题的一种方法是将过滤后的结果存储在新的范围变量(uniqueApplications)中,然后将其传递到未选中的函数中:

 $scope.uncheckAll = function () {
        for (var i = 0; i < $scope.applications.length; i++) {
            var item = $scope.applications[i].Category;
           $scope.FCategory[item] = false;

        }
    };
<div ng-repeat="cat in (uniqueApplications = (applications | unique : 'Category'))">
   <label>
       <input name="abc" type="checkbox" ng-model="$parent.FCategory[cat.Category]" ng-value="cat" ng-init="$parent.FCategory[cat.Category]=true">{{ cat.Category }}
   </label>
</div>

<input type="button" ng-click="uncheckAll(uniqueApplications)">
$scope.uncheckAll = function (list) {
    for (var i = 0; i < list.length; i++) {
        var item = list[i].Category;
       $scope.FCategory[item] = false;

    }
};

{{cat.Category}
您还需要修改取消选中的函数:

 $scope.uncheckAll = function () {
        for (var i = 0; i < $scope.applications.length; i++) {
            var item = $scope.applications[i].Category;
           $scope.FCategory[item] = false;

        }
    };
<div ng-repeat="cat in (uniqueApplications = (applications | unique : 'Category'))">
   <label>
       <input name="abc" type="checkbox" ng-model="$parent.FCategory[cat.Category]" ng-value="cat" ng-init="$parent.FCategory[cat.Category]=true">{{ cat.Category }}
   </label>
</div>

<input type="button" ng-click="uncheckAll(uniqueApplications)">
$scope.uncheckAll = function (list) {
    for (var i = 0; i < list.length; i++) {
        var item = list[i].Category;
       $scope.FCategory[item] = false;

    }
};
$scope.uncheckAll=函数(列表){
对于(变量i=0;i
cat-in(uniqueApplications=(applications | unique:'Category'))我不知道您可以这样在标记级别将内容添加到列表中!谢谢!