Purpose of Filters
A filter formats the value of an expression for display to the user.
Filters can be added to expressions and directives using a pipe character. AngularJS filters can be used to transform data:
Filter | Description |
uppercase | Returns the upper case of the string. |
lowercase | Returns the lower case of the string |
orderBy: ‘Field’ | Orders an array by an expression. Should be used with ng-repeat only |
currency | Converts a number to a currency format. |
number : digitsAfterDecimal | Number rounded to decimalPlaces and places a “,” after each third digit |
filter : model | Select a subset of items from an array as matted in the model. |
date : format | Returns a date as per specified format |
json : spaces | Allows you to convert a JavaScript object into JSON string.Default spacing is 2 spaces |
Example to demonstrate all filters
Example to demonstrate all filters
http://www.w3.org/1999/xhtml">
Id Name Marks Fees Paid {{stud.Id}} {{stud.Name | uppercase}} {{stud.Marks}} {{stud.FeesPaid | currency}}
angularjs Date Examples:
In controller: $scope.GetDate = function(str) { return new Date(str) }
In Html Template:
Enter Date:
Medium Format: {{GetDate(SomeDate) | date: ‘medium’}}
yyyy-MM-dd HH:mm:ss Z
Format: {{GetDate(SomeDate) | date:’yyyy-MM-dd HH:mm:ss Z’}}
dd/MMM/yyyy @
h:mma Format: {{GetDate(SomeDate) | date:’dd/MMM/yyyy @ h:mma’}}
Number formatting:
Default formatting: {{SomeNumber | number}}
No fractions: {{SomeNumber | number: 0}}
Negative numbers: {{-SomeNumber | number: 4}}
angular JSON Filter: Allows you to convert a JavaScript object into JSON string Its mostly used for debugging:
{{ {'name':'value'} | json }}
{{ {'name':'value'} | json:4 }}
angular custom filters
To write a custom filter we need to register a new filter factory function with the module.
This factory function should return a new filter function which takes the input value as the first argument. Any filter arguments are passed in as additional arguments to the filter function.
Note: filter names must be valid angular expression identifiers, such as uppercase or orderBy. Names with special characters, such as hyphens and dots, are not allowed.
Static Custom Filter:
The following sample filter reverses a text string. In addition, it conditionally makes the text upper-case
myApp.filter('reverse', function () { return function (input, uppercase) { input = input || ''; var out = ""; for (var i = 0; i < input.length; i++) { out = input.charAt(i) + out; } // conditional based on optional argument if (uppercase) { out = out.toUpperCase(); } return out; }; })
Actual Value: {{SomeText}}
Reversed Value: {{SomeText | reverse}}
Reversed Uppercase Value: {{SomeText | reverse: true}}
angularjs ng-repeat filter
myApp.filter('Passed', function () { return function (studs, passingMarks) { if (typeof passingMarks == 'undefined') passingMarks = 35; var filteredStuds = []; for (var i = 0; i < studs.length; i++) { if (studs[i].Marks > passingMarks) filteredStuds.push(studs[i]); } return filteredStuds; } })or