Angular filters is one of the trickiest concepts to work with and could be a bit difficult to learn but its is a great for transforming data to reusable and scalable little part.
In this tutorial you will learn how to
You will need the following for this tutorial
For the sake of this tutorial, we will filter a list and return items that match our criteria.
criteria : filter primary colours from other colours
Step 1 : Creating the module
var app = angular.module('filters', []);
Step 2 : Creating the controller
app.controller('colourCtrl', function($scope){
$scope.example = [
{name: 'red' , type : 'primary' } ,
{name: 'green' , type : 'secondary' } ,
{name: 'purple' , type : 'secondary' } ,
{name: 'yellow' , type : 'primary' } ,
{name: 'orange' , type : 'secondary' } ,
{name: 'blue' , type : 'primary' }
]
})
Step 3 : Creating the filter
app.filter('primaryColour', function(){
return function ( input ){
var out = [];
angular.forEach(input, function(colour){
if(colour.type === 'primary'){
out.push(colour)
}
})
return out;
}
})
Step 3 : Html code
<div class="container">
<div class="row">
<div class="col-lg-6 col-lg-offset-3">
<div ng-app="filters">
<div ng-controller="colourCtrl">
<div class="panel panel-default">
<div class="panel-body">
<h4 class="text-center">AngularJS Filter - Primary Colour</h4>
<p><strong>Original :</strong></p>
<ul class="list">
<li ng-repeat="col in example">{{col.name}}</li>
</ul>
<p><strong>Primary Colour Filter:</strong></p>
<ul class="list">
<li ng-repeat="col in example | primaryColour">{{col.name}}</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
After this, you can head over to your browser to confirm if the filter is working which should be if you followed all the steps outlined.