AnularJS filters are used to format the data that needs to be displayed to users. There are many practical built-in filters, and you can also write them yourself.
Call the filter through the | symbol within the template binding symbol {{ }} in HTML. For example, let's say we want to convert the string
To convert to uppercase, you can convert each character in the string individually, or you can use a filter:
{{ name | uppercase }}
Filters can be called through $filter in JavaScript code. For example, using lowercase
in JavaScript code
Filter:
app.controller('DemoController', ['$scope', '$filter', function($scope, $filter) { $scope.name = $filter('lowercase')('Ari'); }]);
When using filters in the form of HTML, if you need to pass parameters to the filter, just add a colon after the filter name
That’s it. If there are multiple parameters, you can add a colon after each parameter. For example, a numeric filter can limit the number of decimal places
The number of digits, write: 2 after the filter, you can pass 2 as a parameter to the filter:
<!-- 显示:123.46 --> {{ 123.456789 | number:2 }}
1. currency
The currency filter can format a numeric value into currency format. Use {{ 123 | currency }} to convert 123
into currency format.
The currency filter allows us to set the currency symbol ourselves. By default, the currency symbol of the client's region will be used,
But you can also customize currency symbols.
2. date
The date filter can format the date into the required format. There are several date formats built into AngularJS, if not
Specify any format to use. The mediumDate format will be used by default. This format is shown in the example below.
The following are the built-in supported localized date formats:
{{ today | date:'medium' }} <!-- Aug 09, 2013 12:09:02 PM --> {{ today | date:'short' }} <!-- 8/9/1312:09PM --> {{ today | date:'fullDate' }} <!-- Thursday, August 09, 2013 --> {{ today | date:'longDate' }} <!-- August 09, 2013 --> {{ today | date:'mediumDate' }}<!-- Aug 09, 2013 --> {{ today | date:'shortDate' }} <!-- 8/9/13 --> {{ today | date:'mediumTime' }}<!-- 12:09:02 PM --> {{ today | date:'shortTime' }} <!-- 12:09 PM -->
Year formatting
Four-digit year: {{ today | date:'yyyy' }}
Two-digit year: {{ today | date:'yy' }}
Year: {{ today | date:'y' }}
Month formatting
English month: {{ today | date:'MMMM' }}
English month abbreviation: {{ today | date:'MMM' }}
Numeric month: {{ today |date:'MM' }}
Month of the year: {{ today |date:'M' }}
Date formatting
Numeric date: {{ today|date:'dd' }}
Day of the month: {{ today | date:'d' }}
English day of the week: {{ today | date:'EEEE' }}
English week abbreviation: {{ today | date:'EEE' }}
Hour formatting
24-hour digital hour: {{today|date:'HH'}}
Hour of the day: {{today|date:'H'}}
12-hour digital hour: {{today|date:'hh'}}
Hour in the morning or afternoon: {{today|date:'h'}}
Minute formatting
Numeric minutes: {{ today | date:'mm' }}
Minute of the hour: {{ today | date:'m' }}
Seconds formatting
Numeric seconds: {{ today | date:'ss' }}
The second in a minute: {{ today | date:'s' }}
Number of milliseconds: {{ today | date:'.sss' }}
Here are some examples of custom date formats:
{{ today | date:'MMMd, y' }} <!-- Aug9, 2013 --> {{ today | date:'EEEE, d, M' }} <!-- Thursday, 9, 8--> {{ today | date:'hh:mm:ss.sss' }} <!-- 12:09:02.995 -->
filter
filter filter can select a subset from the given array and generate a new array and return it.
For example, use the following filter to select all words containing the letter e:
{{ ['Ari','Lerner','Likes','To','Eat','Pizza'] | filter:'e' }} <!-- ["Lerner","Likes","Eat"] -->
If you want to filter objects, you can use the object filter mentioned above. For example, if you have a
consisting of people objects
Array, each object contains a list of their favorite foods, which can be filtered in the following form:
{{ [{ 'name': 'Ari', 'City': 'San Francisco', 'favorite food': 'Pizza' },{ 'name': 'Nate', 'City': 'San Francisco', 'favorite food': 'indian food' }] | filter:{'favorite food': 'Pizza'} }} <!-- [{"name":"Ari","City":"SanFrancisco","favoritefood":"Pizza"}] -->
You can also use a custom function for filtering (in this example the function is defined on $scope):
{{ ['Ari','likes','to','travel'] | filter:isCapitalized }} <!-- ["Ari"] -->
The function of isCapitalized function is to return true or false according to whether the first letter is capitalized, as shown below:
$scope.isCapitalized = function(str) { return str[0] == str[0].toUpperCase(); };
Custom filters
First, create a module to reference in the application
angular.module('myApp.filters', []) .filter('capitalize', function() { return function(input) { // input是我们传入的字符串 if (input) { return input[0].toUpperCase() + input.slice(1); } });
Now, if you want to convert the first letter of a sentence to uppercase, you can use the filter to convert the entire sentence to uppercase first
Write, then convert the first letter to uppercase:
<!-- Ginger loves dog treats --> {{ 'ginger loves dog treats' | lowercase | capitalize }}
The above is how to use AngularJS filters. I hope it will be helpful to everyone's learning.