[英]Toggle filtered results in angularjs
如何在第一次單擊時過濾,然后在第二次單擊時重置過濾器? 我想先顯示具有圖像的項目,然后在第二次單擊時重置過濾器。 請檢查[小提琴] [1] [1]: http : //jsfiddle.net/6L7xn/9/謝謝
<button class="btn btn-primary" ng-click="myFilter = {'largeImage': {'hasImage': 'Yes'}}">Images</button
我已經分叉了您的jsfiddle: http : //jsfiddle.net/jkrielaars/n5q9xeej/2/
我必須更改幾件事:
:true
作為第三個參數傳遞給過濾器 控制器:
$scope.myFilter = {};
$scope.toggleFilter = function(){
if(angular.equals({}, $scope.myFilter)){
$scope.myFilter = {'largeImage': {'hasImage': 'yes'}};
}else{
$scope.myFilter = {};
}
}
和視圖:
<button class="btn btn-primary" ng-click="toggleFilter()">Images</button>
<div class="item-sc" data-ng-repeat="d in things | filter:myFilter:true">
添加控件的簡單功能足以在控制器中設置作用域變量,您可以通過ng-click進行調用。 然后將過濾器設置為等於scope變量中的值。 像這樣:
添加到控制器
$scope.myFilter = 'no' // or whatever you want to default to;
$scope.setMyFilter = function(){
$scope.myFilter = $scope.myFilter === 'no' ? 'yes' : 'no';
};
HTML
<div ng-app="MyApp">
<div class="container" ng-controller="sentCtrl">
<div class="row">
<div><strong>Only show:</strong>
<div class="btn-group btn-group-xs">
<button class="btn btn-primary" ng-click="setMyFilter()">Images</button>
</div>
</div>
</div>
<div class="row content-sc">
<div class="item-sc" data-ng-repeat="d in things | filter: {largeImage.hasImage: myFilter}">
<h4>{{d.NAME}}<br/><small>ID: {{d.ID}}</small></h4>
</div>
</div>
</div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.