⑴ 為什麼AngularJS貨幣過濾器格式負數用括弧
先來看看這些內置過濾器使用方法:一個過濾器,不帶參數的情況{{expression|filter}}一個過濾器,帶參數的情況{{expression|filter:arguments}}一個過濾器,帶多個參數的情況{{expression|filter:arg1:arg2:}}多個過濾器,不帶參數的情況{{expression|filter1|filter2|}}下面我們分別使用以下AngularJS的內置過濾器currencycurrency允許我們設置自己的貨幣符號,默認情況下會採用客戶端所處區域的貨幣符號。可以這樣使用:{{3600|currency:"$¥"}}返回結果為$¥123.00onlinecode點擊預覽numbernumber過濾器將數字格式化成文本,它的參數是可選的,用來控制小數點後的截取位數如果傳入的是一個非數字字元,會返回空字元串可以這樣使用:{{3600|number:2}}返回結果為:3,600.00onlinecode點擊預覽lowercaselowercase將字元串轉換為小寫可以這樣使用:{{"HEllo"|lowercase}}返回結果為:helloonlinecode點擊預覽uppercaseuppercase將字元串轉換為大寫可以這樣使用:{{"HEllo"|uppercase}}返回結果為:HELLOonlinecode點擊預覽jsonjson過濾器可以將一個JSON或者JavaScript對象轉換成字元串。這個過濾器對調試相當有用可以這樣使用:{{{"name":"dreamapple","language":"AngularJS"}|json}}返回結果為:{"name":"dreamapple","language":"AngularJS"}onlinecode點擊預覽datedate過濾器將日期過濾成你想要的格式,這個實在是很好的過濾器。這個過濾器用法很多我這里列舉幾種常用的{{today|date:"yyyy-mm-dd"}}結果為:2015-15-13{{today|date:"yyyy-mm-ddHH:mm::ss"}}結果為:2015-18-1320:18::38[onlinecode](2015-18-1320:18::38)還有三個內置的過濾器,但是使用稍微復雜一點,放在下一篇文章中我們大家一起探討吧
⑵ 怎麼用angular js的過濾器實現分類查找數據
工具/原料
AngularJS 腳本庫
IDE
一、在視圖模板(View Template)中使用
在表達式中應用Filters (過濾器)
需要遵循格式如下:
{{ expression | filter }} 即 {{ 表達式 | 過濾器 }}
例如:{{ 12 | currency }} 輸出為 $12.00
在輸出結果中應用Filters (過濾器)
通俗點講就是Filter的疊加--前一filter的輸出結果作為後一filter的輸入數據源.
需要遵循格式如下:
{{ expression | filter1 | filter2 | ... }} 即 表達式(expression)使用filter1過濾後再使用filter2過濾...
帶參數的Filter
Filter後面可以跟一個或多個參數,用來幫助實現特殊要求、需求的filter.
需要遵循格式如下:
{{ expression | filter:argument1:argument2:... }}
示例: {{ 1234 | number:2 }} = 1,234.00
END
二、使用 AngluarJS 內置Filter
AngularJS為我們提供了9個內建的過濾器
分別是currency, date, filter, json, limitTo, uppercase, lowercase, number, orderBy。
具體的用法在AngularJS的文檔中都有詳細說明。下面只說幾個常用的。
currency filter(貨幣過濾器)
currency – 用來將變數轉換成貨幣表現形式
如:{{ amount | currency}}
uppercase/lowercase filter(字母大小寫filter)
如:
{{ "lower cap string" | uppercase }}
<input ng-model="userInput"> Uppercased: {{ userInput | uppercase }}
date filter (日期filter)
如:
{{ 1304375948024 | date }}
{{ 1304375948024 | date:"MM/dd/yyyy @ h:mma" }}
json filter
如:
{{ {foo: "bar", baz: 23} | json }}
END
在controllers, services和drictives中使用filter
1
可以在AngularJS的controller, service或者driective中使用filter, 這時候你需要將依賴的filter名字加入到controller, service或者directive的依賴中去。
2
在controller中直接使用filter, 這樣controller可以根據自身需要而適時調用filter
END
三、自定義filter(過濾器)
1
AngularJS編寫自定義過濾器的形式和AngularJS的factory service非常相像,一定記得它返回一個對象或者是一個函數即可,編寫的時候,只需要一個帶有一個以上參數的函數即可。
2
格式大致如:
app.filter('filter(過濾器)名稱',function(){
return function(需要過濾的對象,過濾器參數1,過濾器參數2,...){
//...執行業務邏輯代碼
return 處理後的對象;
}
});
⑶ angularjs中有多個過濾器使用方法
一、在視圖模板(View Template)中使用
在表達式中應用Filters (過濾器)
需要遵循格式如下:
{{ expression | filter }} 即 {{ 表達式 | 過濾器 }}
例如:{{ 12 | currency }} 輸出為 $12.00在輸出結果中應用Filters (過濾器)
通俗點講就是Filter的疊加--前一filter的輸出結果作為後一filter的輸入數據源.
需要遵循格式如下:
{{ expression | filter1 | filter2 | ... }} 即 表達式(expression)使用filter1過濾後再使用filter2過濾...
帶參數的Filter
Filter後面可以跟一個或多個參數,用來幫助實現特殊要求、需求的filter.
需要遵循格式如下:
{{ expression | filter:argument1:argument2:... }}
示例: {{ 1234 | number:2 }} = 1,234.00END
二、使用 AngluarJS 內置Filter
AngularJS為我們提供了9個內建的過濾器
分別是currency, date, filter, json, limitTo, uppercase, lowercase, number, orderBy。
具體的用法在AngularJS的文檔中都有詳細說明。下面只說幾個常用的。
currency filter(貨幣過濾器)
currency – 用來將變數轉換成貨幣表現形式
如:{{ amount | currency}}
uppercase/lowercase filter(字母大小寫filter)如:
{{ "lower cap string" | uppercase }}
<input ng-model="userInput"> Uppercased: {{ userInput | uppercase }}
date filter (日期filter)
如:
{{ 1304375948024 | date }}
{{ 1304375948024 | date:"MM/dd/yyyy @ h:mma" }}
json filter
如:
{{ {foo: "bar", baz: 23} | json }}
END
在controllers, services和drictives中使用filter1可以在AngularJS的controller, service或者driective中使用filter, 這時候你需要將依賴的filter名字加入到controller, service或者directive的依賴中去。
2在controller中直接使用filter, 這樣controller可以根據自身需要而適時調用filterEND
三、自定義filter(過濾器)
1AngularJS編寫自定義過濾器的形式和AngularJS的factory service非常相像,一定記得它返回一個對象或者是一個函數即可,編寫的時候,只需要一個帶有一個以上參數的函數即可。
2格式大致如:
app.filter('filter(過濾器)名稱',function(){return function(需要過濾的對象,過濾器參數1,過濾器參數2,...){//...執行業務邏輯代碼return 處理後的對象;
}
});
⑷ 如何在angularjs的自定義指令內部定義自定義過濾器
實現方式
下面看一下如何定義聲明一個過濾器,首先依然是要創建我們自己的模塊myAppMole
var myAppMole = angular.mole("myApp",[]);
接下來在模塊的基礎上,創建過濾器:
myAppMole.filter("reverse",function(){
});
其中reverse是過濾器的名字,後面跟著過濾器的方法聲明,在方法中返回另一個方法:
myAppMole.filter("reverse",function(){
return function(input,uppercase){
var out = "";
for(var i=0 ; i<input.length; i++){
out = input.charAt(i)+out;
}
if(uppercase){
out = out.toUpperCase();
}
return out;
}
});
內部返回的方法包含了兩個參數,一個是輸入的值,就是我們過濾器接受的值。
如果想要實現下面的過濾器:
name | reverse
則input就是其中name代表的值。
後面的參數是可選的,我們這里接受uppercase這個bool值,判斷是否要進行大小寫轉換。
內部實現的代碼,就沒必要解釋了。最後返回過濾後的字元串即可。
⑸ angular寫的過濾器 怎麼引入
1.過濾器是用來格式化需要展示給用戶的數據,AngularJS中含有實用的內置過濾器可以使用,也支持用戶進行自定義過濾器;
2.過濾器調用方式:
(1) 在HTML的模板中綁定符合{{}} 內通過 | 符號來調用過濾器; 比如{{ name | uppercase }} ------將name字元串中的每個字元轉為大寫字母;
(2) 在JavaScript中可以通過$filter 來調用過濾器,比如:
[javascript] view plain
app.controller("demoController",['$scope','$filter',function($scope,$filter){
$scope.name = $filter("uppercase")('ari');
}]);
(3) 在HTML中使用過濾器時,如需要傳遞參數給過濾器,則需要在過濾器後面加冒號即可,若有多個參數,則在每個參數後面加入冒號即可,比如 {{ 123.4567 | number : 2}} 頁面展示為 123.46
3.angularJS 提供的內置過濾器:
(1) currency: 可以將一個數值格式化為貨幣格式,默認的貨幣符號是當前客戶端所處區域的貨幣符號;
(2)date:將日期格式化為需要的格式,具體的格式參考其API;
(3) filter:從給定數組中選擇一個子集,並將其生成一個新數組返回。filter過濾器的第一個參數可以是字元串、對象或是一個用來從數組中選擇元素函數,傳入不同類型時表現:
1) 字元串:返回所有包含這個字元串的元素,如想返回不包含該字元串的所有元素,則在參數之前加 ! ;
2) 對象:AngularJS會將待過濾對象的屬性同這個對象中的同名屬性進行比較,若屬性值是字元串就會判斷是否包含該字元串;若希望對全部屬性進行對比,將$作為鍵名;
3) 函數: 對待過濾數組的每個元素執行此函數,返回非假值的元素會出現在新的數組中並返回;
filter的第二個參數可以是:
1)true: 用angular.equals(excepted,actual)對兩個值進行嚴格比較;
2) false:進行區分大小寫的子字元串比較;
3)函數:運行這個函數,如果返回真值就接受這個元素;
(4) json:將一個JSON或JavaScript對象轉換成字元串;
(5) limitTo :根據傳入的參數生成一個新的數組或字元串,新的數組或字元串的長度取決於傳入的參數,通過傳入參數的正負值來控制從前面還是後面進行截取;
如果傳入的長度大於被過濾的數組或字元串的長度,則整個數組或字元串都會被返回;
{{ San is very people | limitTo : 3}} ----> San {{ San is very people | limitTo : -3}} ---->ple
(6)lowercase 將過濾字元串轉為小寫字母; uppercase 將過濾字元串轉為大寫字母;
(7) number :將數字格式化成文本,第二個參數是可選,用於控制小數點後截取的位數; 如果傳入的是非數字字元,則返回空字元串;
(8) orderBy:用表達式對指定的數組進行排序,可以接受兩個參數,第一個參數是必須的,第二個參數是可選,第一個參數的情況:
1) 函數:當第一個參數是函數時,該函數會被當作待排序對象的getter方法;
2)字元串:對這個字元串進行解析的結果將決定數組元素的排序方式,可以使用+ 或 - 來強制進行升序和降序;
3)數組:在排序表達式中使用數組元素作為謂詞; 第二個參數用來控制排序的方向;
4.自定義過濾器:
此過濾器用來定義一個名為myFilter的過濾器,作用是將傳入的字元串的首字母轉為大寫字母;
[javascript] view plain
angular.mole("testFilter",[]).filter("myFilter",function(){
return function(input) {
if (input) {
return input[0].toUpperCase() + input.slice(1);
}
}
});
5.表單驗證:
(1) 若想要屏蔽瀏覽器對表單的默認驗證行為,則在表單元素上添加 novalidate標記,若想使用angularJS 的表單驗證功能,需要保證form有name屬性;
(2) input上可以使用的驗證選項:
1)required:驗證當前input是否有值,必填項;
2) ng-minlength/ng-maxlength:當前input能輸入的最大長度和最小長度; <input name="text" ng-minlength="2" ng-maxlength="20"/>
3) ng-pattern :模式匹配,用來確保輸入能夠匹配指定的正則表達式;
4) email:驗證輸入的內容是否是電子郵件,<input type="email" name="email"/>
5) number:驗證輸入的內容是否是數字 <input type="number" name="age"/>
6) URL:驗證輸入的內容是否是URL <input type="url" name="homespace"/>
在javaScript中可以使用這些屬性去對表單做出實時響應 通過formName.inputFieldName.property格式訪問屬性:
1) formName.inputFieldName.$pristine:用來判斷用戶是否修改了表單,若未修改則返回true,若修改過,則返回false;
2) formName.inputFieldName.$dirty:只用用戶修改過表單,無論輸入是否通過驗證,該值都返回true;
3) fornName.inputFieldName.$valid:用來判斷表單的內容是否合法,若表單內容是合法的則返回true;
4) fornName.inputFieldName.$invalid:用來判斷表單的內容是否不合法,若表單內容是不合法的則返回true;
5) fornName.inputFieldName.$error:用來判斷表單所有的驗證內容以及內容是否合法,如果驗證失敗,則屬性值為true,若輸入欄位的值通過驗證則返回false;
(3) $parsers:
當用戶同控制器進行交互並且ngModelController中的$setViewValue()方法被調用時,$parsers數組中的函數會以流水線的形式被逐個調用,第一個調用值會變傳入到第二個$parse中;調用函數時,可以使用$setValidity()函數去設置表單的合法性;
(4) $formatters:
當綁定的ngModel值發生變化,並經過$parsers數組中解析器處理後,這個值會被創遞給$formatters流水線,此函數可以修改並格式化這些值;
(3) ngMessages( 在AngularJS 1.3+以上版本中才包含此指令)
1)ngMessages是angularJs的一個獨立模塊,故需要手動載入 指令為 $ bower install --save angular-messages或在angular官網上下載此文件,然後通過html引入;
2)ngMessages還需要作為引用程序的依賴模塊引入,比如angular.mole("myApp",[ngMessages]);
⑹ Angularjs 過濾器能獲取到過濾後的數據嗎
|AngularJS的內置過濾器使用方法:
一個過濾器,不帶參數的情況
{{expression | filter}}
一個過濾器,帶參數的情況
{{expression | filter:arguments}}
一個過濾器,帶多個參數的情況
{{expression | filter: arg1: arg2: ...}}
多個過濾器,不帶參數的情況
{{expression | filter1 | filter2 | ...}}
分別使用以下AngularJS的內置過濾器
currency
currency允許我們設置自己的貨幣符號,默認情況下會採用客戶端所處區域的貨幣符號。
可以這樣使用:{{ 3600 | currency: "$¥"}}
返回結果為$¥123.00
online code點擊預覽
number
number過濾器將數字格式化成文本,它的參數是可選的,用來控制小數點後的截取位數
如果傳入的是一個非數字字元,會返回空字元串
可以這樣使用:{{ 3600 | number:2}}
返回結果為:3,600.00
online code點擊預覽
lowercase
lowercase將字元串轉換為小寫
可以這樣使用:{{ "HEllo" | lowercase}}
返回結果為:hello
online code點擊預覽
uppercase
uppercase將字元串轉換為大寫
可以這樣使用:{{ "HEllo" | uppercase}}
返回結果為:HELLO
online code點擊預覽
json
json過濾器可以將一個JSON或者JavaScript對象轉換成字元串。
這個過濾器對調試相當有用
可以這樣使用:{{ {"name":"dreamapple","language":"AngularJS"} | json}}
返回結果為:{ "name": "dreamapple", "language": "AngularJS" }
online code點擊預覽
date
date過濾器將日期過濾成你想要的格式,這個實在是很好的過濾器。
這個過濾器用法很多我這里列舉幾種常用的
{{ today | date: "yyyy - mm - dd"}}
結果為:2015 - 15 - 13
{{ today | date: "yyyy - mm - dd HH:mm::ss"}}
結果為:2015 - 18 - 13 20:18::38
[online code](2015 - 18 - 13 20:18::38)
⑺ angularjs自定義的過濾器只能用一次嗎
這個只能自己寫過濾方法版了權
function unique(arr, key){
var tempArr = arr;
for(var i = 0;i < tempArr.length;i++){
for(var j = 0;j< tempArr.length;j++){
if(tempArr[i][key] == tempArr[j][key]){
arr.splice(j,1);
}
}
}
return arr;
}
unique($scope.items,'name')
⑻ angularjs自定義過濾器怎麼寫
過濾器(filter)正如其名,作用就是接收一個輸入,通過某個規則進行處理,然後返回處回理後的結果。主要答用在數據的格式化上,例如獲取一個數組中的子集,對數組中的元素進行排序等。ng內置了一些過濾器,它們是:currency(貨幣)、date(日期)、filter(子串匹配)、json(格式化json對象)、limitTo(限制個數)、lowercase(小寫)、uppercase(大寫)、number(數字)、orderBy(排序)。總共九種。除此之外還可以自定義過濾器,這個就強大了,可以滿足任何要求的數據處理。
AngularJS中為我們提供了一些內置的過濾器,這里列舉一些自定義過濾器的場景。
⑼ angularjs怎麼自定義過濾器去掉重復項
如果你在前台做起來覺得費勁,為什麼不在後台處理呢?你的這個需求在後台通過sql查詢出來是多簡單。將查詢的結果直接在發給angualr,再顯示到前台形成導航,不是很簡單嗎?
⑽ angular 過濾器一定要在ng-repeat裡面嗎
小寫過濾器
添加小寫的過濾器,使用管道符的表達式。在這里添加小寫過濾器專,以小寫字屬母列印學生姓名。
Enter first name:<input type="text" ng-model="student.firstName">
Enter last name: <input type="text" ng-model="student.lastName">
Name in Upper Case: {{student.fullName() | lowercase}}
貨幣濾波器
加幣過濾器使用管道符返回數的表達式。在這里,我們添加了過濾器,貨幣使用貨幣格式的列印費用。
Enter fees: <input type="text" ng-model="student.fees">
fees: {{student.fees | currency}}