引言在表達式中使用過濾器1 currency過濾器的使用2 lowercase過濾器的使用3 uppercase過濾器的使用4 json過濾器的使用5 data過濾器的使用6 number過濾器的使用7 limitTo過濾器的使用8 orderBy過濾器的使用9 filter過濾器的使用過濾器在指令中的使用過濾器在服務中的使用js代碼中使用1 lowercase過濾器2 json過濾器3 uppercase過濾器4 limitTo過濾器5 date過濾器6 currency過濾器7 number過濾器8 orderBy過濾器9 filter過濾器10 過濾器在js對象使用總結
在本篇博客中主要介紹一下AngularJS
過濾器,過濾器主要應用于表達式,部分指令,過濾器還可以應用在控制器中(過濾器服務),AngularJS
一共給我們提供了9種過濾器,分別為:currency
,date
,filter
,json
,limitTo
,lowercase
,number
,orderBy
,uppercase
,首先我們看一下這個每一種過濾器所起到的作用:
currency
:格式化數字為貨幣形式date
:格式化date對象到字符串filter
:從array中選擇一個條目子集,并作為一個新數組返回json
:允許轉換一個javaScript對象到JSON字符串limitTo
:截取字符串lowercase
:轉換字符串為小寫形式。number
: 格式化數字到文本。orderBy
:字符串按照字母排序uppercase
:轉換字符串到大寫形式。上述九種過濾器便是AngularJS
提供的過濾器,接下來我們就來看看過濾器的各種用法。
currency
過濾器的使用 currency
過濾器主要用于貨幣的格式化,它的使用方式為:{{ currency_exPRession | currency : symbol}}
currency_expression
:表示AngularJS
表達式currency
:代表使用 currency
過濾器symbol
:是一個可選參數,如果不寫,默認是美元符。我們看一下這個過濾器的使用,代碼如下:
如果不寫symbol
參數 {{100|currency}} //輸出結果為:$100.00如果寫symbol
參數(也就是說:symbol參數控制貨幣的符號){{100|currency:'&&&&'}} //輸出結果為:&&&&100.00{{100|currency:'¥'}} //輸出結果為:¥100.00lowercase
過濾器的使用{{ uppercase_expression | lowercase}}
,代碼如下://注意這里寫的是字符串{{'ABCD'|lowercase}}//輸出結果為:abcduppercase
過濾器的使用{{ uppercase_expression | uppercase}}
,代碼如下:{{'abcd'|uppercase}}//輸出結果為:ABCDjson
過濾器的使用{{ json_expression | json}}
,代碼如下:{{ {foo: "bar", baz: 23} | json }}//輸出結果為:{ "foo": "bar", "baz": 23 }data
過濾器的使用 data
過濾器是格式化輸出我們的data對象,該過濾器為:{{ date_expression | date : format}}
date_expression
:是表達式date
:使用data
過濾器format
:可選參數,日期輸出的格式化接下來我們使用一下這個過濾器
不使用format
參數 //這是我們的控制器 var app=angular.module("myApp",[]); app.controller("firstController", function ($scope) { $scope.time=new Date(); }); //這是我們的表達式 {{ time | date }}//輸出結果為:Feb 7, 2017使用format
參數 //這是我們的控制器 var app=angular.module("myApp",[]); app.controller("firstController", function ($scope) { $scope.time=new Date(); }); //這是我們的表達式 {{ time | date :"'yyyy-MM-dd"}}//輸出結果為:2017-02-07number
過濾器的使用關于number
過濾器的使用,是格式化數字輸出,這個過濾器為:{{ number_expression | number : fractionSize}}
number_expression
:表達式number
:使用number
過濾器fractionSize
:可選參數,可以控制數字的小數點位數,,如果不填,默認為3現在我們看一下這個過濾器的使用。
沒有使用fractionSize
參數{{ 1.234567 | number }}//輸出結果為:1.234使用fractionSize
參數{{ 1.234567 | number:6 }}//輸出結果為:1.234567 limitTo
過濾器的使用limitTo
過濾器是用來截取字符串和對對象,他的使用方式為:{{ limitTo_expression | limitTo : limit}}
limitTo_expression
:字符串表達式或者對象limitTo
:使用limitTo
過濾器limit
:代表字符串截取的長度,如果是正數是從前面截取,如果是負數是從后面截取接下來我們看一下這個過濾器的使用
字符串的截取{{ 'abcde' | limitTo:2 }}//運行結果:ab{{ 'abcde' | limitTo:-2 }}//運行結果:de對象的截取 //創建我們的控制器 var app=angular.module("myApp",[]); app.controller("firstController", function ($scope) { $scope.persons= [ {"age": 20,"id": 10,"name": "iphone"}, {"age": 12,"id": 11,"name": "sunm xing"}, {"age": 44,"id": 12,"name": "test abc"} ] }); //表達式 {{persons| limitTo:1}} //運行結果 [{"age":20,"id":10,"name":"iphone"}]orderBy
過濾器的使用關于orderBy
過濾器的使用:字符串按字母順序排序,數字按大小排序,這個表達式為:{{ orderBy_expression | orderBy : expression : reverse}}
orderBy_expression
:排序的字符串orderBy
:使用orderBy
過濾器expression
:一個決定順序的聲明reverse
:是一個boollen
類型,是正序排列還是逆序排列,如果不填默認為false
接下來我們用幾個例子來看一下這個過濾器的使用:
根據id
正序排列 //定義我們的控制器 var app=angular.module("myApp",[]); app.controller("firstController", function ($scope) { $scope.persons= [ {"age": 20,"id": 10,"name": "iphone"}, {"age": 12,"id": 11,"name": "sunm xing"}, {"age": 44,"id": 12,"name": "test abc"} ] }); //我們的表達式,根據id字段正序排序 {{persons| orderBy:'id':false}} //上面表達式等價于 {{persons| orderBy:'id'}} //運行結果 [{"age":20,"id":10,"name":"iphone"},{"age":12,"id":11,"name":"sunm xing"},{"age":44,"id":12,"name":"test abc"}]根據id
逆序排列 //定義我們的控制器 var app=angular.module("myApp",[]); app.controller("firstController", function ($scope) { $scope.persons= [ {"age": 20,"id": 10,"name": "iphone"}, {"age": 12,"id": 11,"name": "sunm xing"}, {"age": 44,"id": 12,"name": "test abc"} ] }); //我們的表達式,根據id字段正序排序 {{persons| orderBy:'id':true}} //運行結果 [{"age":44,"id":12,"name":"test abc"},{"age":12,"id":11,"name":"sunm xing"},{"age":20,"id":10,"name":"iphone"}]filter
過濾器的使用filter
過濾器主要用于查找,也就是在array
中選擇一定的條目,然后返回一個新數組,該過濾器的形式為:{{ filter_expression | filter : expression : comparator}}
filter_expression
:代表數組源filter
:使用filter
過濾器expression
:篩選的條件comparator
:是一個比較器,比如篩選的時候是否區分大小寫,這個可以是一個函數對象,用于比較。現在我們來看一下這個過濾器的使用
代碼實現 //定義我們的控制器 var app=angular.module("myApp",[]); app.controller("firstController", function ($scope) { $scope.persons= [ {"age": 20,"id": 10,"name": "iphone"}, {"age": 12,"id": 11,"name": "sunm xing"}, {"age": 44,"id": 12,"name": "test abc"} ] }); //表達式(查找帶有字符串s的行) {{persons|filter:'s'}} //運行結果 [{"age":12,"id":11,"name":"sunm xing"},{"age":44,"id":12,"name":"test abc"}] //表達式(注意:{'name':'iphone'}后面有一個空格)查找name字段為iphone的對象 {{ persons | filter:{'name':'iphone'} }} //運行結果 [{"age":20,"id":10,"name":"iphone"}]關于過濾器在指令中的使用在這里舉一個例子ng-repeat
指令中的使用,代碼如下:
在前面我們使用了過濾器,分別是在表達式中使用,還有就是在指令中使用,其實過濾器的使用還可以在js
代碼中使用,AngularJS
為我們提供了一個$filter
服務,此服務可以注入到我們js代碼中使用,接下來我們就來簡單的看一下這9種過濾器在js代碼中如何使用呢?
lowercase
過濾器json
過濾器uppercase
過濾器limitTo
過濾器date
過濾器currency
過濾器number
過濾器orderBy
過濾器filter
過濾器過濾器在Javascript中的使用一般形式是這樣的:$filter()()
$filter
服務有兩個參數,第一個參數是過濾器的名稱,第二個參數是一個參數列表。我們來看該服務的第二個參數,第二個參數的第一個是輸入的值,后面的參數分別為過濾器所需要的內容。以orderBy
過濾器為例,看一下這個服務$filter('orderBy')(array, expression, reverse)
,我們看第二個參數array
是輸入的排序數組,expression
是過濾表達式,reverse
代表是否逆序排列。新聞熱點
疑難解答