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