The examples in this article describe the usage of AngularJS filters. Share it with everyone for your reference, the details are as follows:
In the previous sections, we have been exposed to AngularJS expressions. The function of expressions is to output literals or property values in the $scope object to the view. We can use filters to format the output data before output.
The use of filters is very simple, let’s take a look at the following code:
<!DOCTYPE html> <html ng-app> <head> <meta charset="UTF-8"> <script type="text/javascript" src="angular-1.3.0.14/angular.js"></script> <title>tutorial05_1</title> </head> <body> <p>{{"HELLO WORLD!"| lowercase}}</p> <p>{{"hello world!"| uppercase}}</p> <p>{{3.1415926| number:2}}</p> <p>{{3011| currency}}</p> </body> </html>
The two nested curly brackets are the expressions of AngularJs. We call the filter through the | character followed by the filter name. Lowercase, uppercase, number, and currency are AngularJs’ built-in filters.
lowercase is used to convert letters in the text to lowercase, uppercase is the opposite, the number filter is used to control the format of numbers, and currency converts numbers into amount format.
Let’s take a look at the effect in the browser:
The built-in filter functions provided by AngularJs are very limited. Here is how to customize the filter.
<!DOCTYPE html> <html ng-app="filterMod"> <head> <meta charset="UTF-8"> <script type="text/javascript" src="angular-1.3.0.14/angular.js"></script> <title>tutorial05_2</title> </head> <body> <p>{{11314| toRMB}}</p> <script> var filterMod = angular.module("filterMod",[]); filterMod.filter("toRMB",function($log) { var toRMB = function(input) { var RMBNum = ['零',"壹","贰","叁","肆","伍","陆","柒","捌","玖","拾","佰","仟","万","亿"]; var inputStr = input + ""; var inputArr = new Array(); for(i=0;i<inputStr.length;i++) { var temp = parseInt(input % 10); inputArr.push(temp); switch(i) { case 0:inputArr.push(10); break; case 1:inputArr.push(11); break; case 2:inputArr.push(12); break; case 3:inputArr.push(13); break; } input = input / 10; } inputArr = inputArr.reverse(); var output = ""; for(i=0;i<inputArr.length;i++) { output += RMBNum[inputArr[i]]; } return output; } return toRMB; }); </script> </body> </html>
The above is a filter customized by the author to convert numbers into uppercase Chinese characters for RMB.
filterMod.filter("toRMB",function($log)...
The definition of the filter is similar to the controller. We complete it through the filter method of the AngularJs module. The first parameter is the name of the filter, and the second parameter is the filter implementation part. It must return a Data processing functions.
var toRMB = function(input)...
This part is the data processing function, input is the original input data, we process the input data in this function, and then return the processed data.
Effect in the browser:
Note: This toRMB filter is only written by the author to demonstrate the method of customizing the filter. There are still many deficiencies. Interested readers can improve it by themselves.