Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Angular ng-repeat filter to hide elements

I need filter for ng-repeat, which will hide elements. If $scope.selected will get true, i need to hide elements when select: true or visible: false

$scope.selected = false;

$scope.array = [
{name: 'item1', select: true, visible: false},
{name: 'item2', select: true, visible: true},
{name: 'item3', select: false, visible: true},
{name: 'item4', select: true, visible: false},
{name: 'item5', select: false, visible: true},
]
<div ng-repeat="item in array">
	<div>{{item.name}}</div>
</div>
like image 288
johanson Avatar asked Feb 18 '26 13:02

johanson


1 Answers

In this case you need use filter.

Live example in jsfiddle.

var myApp = angular.module("myApp", []);


myApp.controller("myCtrl", function($scope) {
$scope.selected = true;
$scope.myFilter = function(item){
 return $scope.selected && (!item.visible || item.select)
}
$scope.array = [
{name: 'item1', select: true, visible: false},
{name: 'item2', select: true, visible: true},
{name: 'item3', select: false, visible: true},
{name: 'item4', select: true, visible: false},
{name: 'item5', select: false, visible: true},
]
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="myApp" ng-controller="myCtrl">
  <div ng-repeat="item in array|filter:myFilter">
	<div>{{item.name}}</div>
</div>
</body>
like image 69
Stepan Kasyanenko Avatar answered Feb 21 '26 14:02

Stepan Kasyanenko