AngularJS provides a powerful filtering mechanism that allows you to narrow down data sets and display only the relevant information. In this tutorial, we will explore how to filter data using the filter
directive in AngularJS.
Introduction to Filtering
Filtering is an essential feature in any web application, as it enables users to quickly find specific data without having to sift through large amounts of information. AngularJS provides a built-in filtering mechanism that can be used with the ng-repeat
directive to filter data based on various conditions.
Basic Filtering
To filter data using AngularJS, you need to use the filter
directive in conjunction with the ng-repeat
directive. The basic syntax for filtering is as follows:
<div ng-repeat="item in items | filter:searchTerm">
<!-- display item details here -->
</div>
In this example, the items
array is filtered based on the searchTerm
variable.
Filtering by a Specific Field
By default, AngularJS filters data based on all fields of an object. However, you can specify a particular field to filter on by using an object with a property matching the field name. For example:
<div ng-repeat="product in products | filter:{ colour: 'red' }">
<!-- display product details here -->
</div>
In this example, only products with the colour
field set to 'red'
will be displayed.
Filtering using a Variable
You can also use a variable to specify the filter condition. For example:
<input type="text" ng-model="searchColour">
<div ng-repeat="product in products | filter:{ colour: searchColour }">
<!-- display product details here -->
</div>
In this example, the searchColour
variable is used to filter the products based on the colour
field.
Filtering using a Function
If you need more complex filtering logic, you can use a function as the filter expression. For example:
$scope.myFilter = function(item) {
return item.colour === 'red' || item.colour === 'blue';
};
<div ng-repeat="product in products | filter:myFilter">
<!-- display product details here -->
</div>
In this example, the myFilter
function is used to filter the products based on the colour
field.
Filtering Multiple Fields
You can also filter data based on multiple fields by using an object with multiple properties. For example:
<div ng-repeat="product in products | filter:{ colour: 'red', size: 'large' }">
<!-- display product details here -->
</div>
In this example, only products with both colour
set to 'red'
and size
set to 'large'
will be displayed.
Conclusion
Filtering data is an essential feature in any web application, and AngularJS provides a powerful filtering mechanism that can be used to narrow down data sets. By using the filter
directive with the ng-repeat
directive, you can easily filter data based on various conditions, including specific fields, variables, and functions.