カスタム角度フィルタをチェックボックスで作成し、選択したチェックボックスに応じて検索結果が変わります。私はすべてのフィルタをリセットするリセットボタンを作成しているので、何をすべきか分かりません。私はresetFilters関数の下にもっと多くのものを追加する必要があることを知っているが、私が試したコードは動作していない。助けてください!リセットボタンをクリックしたときにカスタム角度フィルタをリセットする
JS部分:
$scope.FREEcheckChange = function(){
for (var check4 in $scope.FREE){
if($scope.FREE[check4].on){
$scope.showAll4 = false;
return;
}
}
$scope.showAll4 = true;
}; //end of FREEcheckChange
$scope.FREEFilter = function(f){
if($scope.showAll4)
{return true;}
var selectedBox4 = false;
for(var i in $scope.FREE){
var catFive = $scope.FREE[i];
if(catFive.on){
if(f.cat.indexOf(catFive.name) == -1) {return false;}
else {selectedBox4 = true;}
}
}
return selectedBox4;
}
$scope.YEARFilter = function(d){
if($scope.showAll3)
{return true;}
var selectedBox3 = false;
for(var i in $scope.YEAR){
var catFour = $scope.YEAR[i];
// console.log(catFour);
if(catFour.on){
if(d.cat.indexOf(catFour.name) == -1) {return false;}
else {selectedBox3 = true;}
}
}
return selectedBox3;
}
$scope.resetFilters = function(){
$('input:checkbox').removeAttr('checked'); }
HTML:
<div ng-repeat="item in filteredProducts = (products | filter: YEARFilter | filter: FREEFilter | searchFilter:searchString)">
<button type="button" class="btn btn-default btn-block" style="margin: 7px 0;" ng-click="resetFilters();">RESET FILTERS</button>
<div ng-repeat= "FREEcategory in FREE">
<input type="checkbox" ng-model="FREEcategory.on" ng-change ="FREEcheckChange()">
{{FREEcategory.name}}
</div>
<div ng-repeat= "YEARcategory in YEAR">
<input type="checkbox" ng-model="YEARcategory.on" ng-change ="YEARcheckChange()">
{{YEARcategory.name}}
</div>
フィーリングまたはplunkrを提供できますか?また、私はあなたが正しく使用することができるように、まずアプリケーションにフィルタを適切に登録しなければならないと思います。今はちょうど$スコープの関数です。また、コンソールにエラーがないかチェックしましたか?もう一つのことは - このコードはコントローラの中にありますか? –
フィルタが使用するデータモデルをリセットする必要があります... jQueryを使用しない – charlietfl