導航:首頁 > 凈水問答 > angularjs過濾器原理

angularjs過濾器原理

發布時間:2023-03-23 15:14:34

㈠ 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貨幣過濾器格式負數用括弧

AngularJS的filter,中文名「過濾器」是用來過濾變數的值,或者格式化輸出,得到自己所期望的結果或格式的東東。工具/原料AngularJS腳本庫IDE一、在視圖模板(ViewTemplate)中使用在表達式中應用Filters(過濾器)需要遵循格式如下:{{

㈢ angularjs自定義過濾器怎麼寫

過濾器(filter)正如其名,作用就是接收一個輸入,通過某個規則進行處理,然後返回處回理後的結果。主要答用在數據的格式化上,例如獲取一個數組中的子集,對數組中的元素進行排序等。ng內置了一些過濾器,它們是:currency(貨幣)、date(日期)、filter(子串匹配)、json(格式化json對象)、limitTo(限制個數)、lowercase(小寫)、uppercase(大寫)、number(數字)、orderBy(排序)。總共九種。除此之外還可以自定義過濾器,這個就強大了,可以滿足任何要求的數據處理。
AngularJS中為我們提供了一些內置的過濾器,這里列舉一些自定義過濾器的場景。

㈣ 使用Angularjs過濾器如何實現動態搜索

利用angularjs實現動態的插入以及利用過濾稿消賣器進行數據橋皮的搜索以及排序:

㈤ 如何在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值,判斷是否要進行大小寫轉換。
內部實現的代碼,就沒必要解釋了。最後返回過濾後的字元串即可。

㈥ angularjs中undefined怎麼判斷

AngularJS表達式類似Javascript的代碼片段,通常在數據綁定源銷中用到,寫在雙大括弧中,如:{{表達式}}。表達式是用$parse方法來處理的。

下面是一些合法的AngularJS表達式

1+2
3*10 | currency
user.name
你可能會認為AngularJS視圖中的表達式就是Javascript表達式,這種認識不完全對,因為AngularJS不會用Javascript的eval()函數去執行表達式。 不過除了以下幾個需含絕要區別的地方以外,你可以把AngularJS表達式看成是Javascript表達式:

屬性表達式:屬性表達式對應於當前的作用域,不像Javascript對應的是全局的window對象。
允許未定義值:執行表達式時,AngularJS能夠允許undefined或者null,不像Javascript會拋出一個異常。
沒有控制結構: 你不能在AngularJS表達式中使用「條件判斷」、「循環」、「拋出異常」等控制結構。
過濾器(類似unix中的管道操作符): 你可以通過過濾器鏈來傳遞表達式的結果。例如將日期對象轉變成指定的閱讀友好的格談裂姿式。
如果你想要在表達式中使用標準的Javascript,那麼你應該把它寫成一個控制器的方法,然後在表達式中調用這個方法。如果你想在Javascript中執行AngularJS表達式,你可以使用$eval()方法。

舉個例子:

<!doctype html>
<html ng-app>
<head>
<script src="http://code.angularjs.org/angular-1.0.2.min.js"></script>
<script>
function Cntl2($scope) {
var exprs = $scope.exprs = [];
$scope.expr= '3*10|currency';
$scope.addExp= function(expr) { //在控制器裡面定義了一個addExp方法,在這個方法中,使用的是標準的js代碼
exprs.push(expr);
};
$scope.removeExp= function(index) {
exprs.splice(index,1);
};
}
</script>
</head>
<body>
<div ng-controller="Cntl2" class="expressions">
Expression:
<input type='text' ng-model="expr" size="80"/>
<button ng-click="addExp(expr)">Evaluate</button>
<ul>
<li ng-repeat="expr in exprs">
[<a href="" ng-click="removeExp($index)">X</a> ]
<tt>{{expr}}</tt> => <span ng-bind="$parent.$eval(expr)"></span> //這里的expr是在js中,如果想運行此angular表達式,就調用$eval。
</li>
</ul>
</div>
</body>
</html>

屬性表達式

屬性表達式計算是發生在作用域中的。Javascript默認是以window為作用域的。AngularJS要使用window作用域的話得用$window來指向全局window對象。 比如說,你使用window中定義的alert()方法,在AngularJS表達式中必須寫成$window.alert()才行。

舉個例子:

<!doctype html>
<html ng-app>
<head>
<script src="www.hbbz08.com //code.angularjs.org/angular-1.0.2.min.js"></script>
<script>
function Cntl1($window, $scope){
$scope.name = 'World';
$scope.greet = function() {
($window.mockWindow || $window).alert('Hello ' + $scope.name);
}
}
</script>
</head>
<body>
<div class="example2" ng-controller="Cntl1">
Name: <input ng-model="name" type="text"/>
<button ng-click="greet()">Greet</button>
</div>
</body>
</html>
允許未定義值
表達式在執行時是可以允許undifined和null的。 在Javascript中,計算a.b.c會拋出一個異常,如果這不是一個對象的話。但是如果大多數時候表達式是用來作數據綁定的,像下面這種形式:

{{a.b.c}}
那麼表達式返回一個空值會比觸發異常更有意義。因為通常我們是在等待伺服器的響應,並且變數馬上就會被定義和賦值。如果表達式不能容忍未定義的值,那麼我們綁定的代碼就不得不寫成形如:

{{((a||{}).b||{}).c}}
angular在執行未定義的函數a.b.c()是,也會返回undefined,不會觸發異常。

沒有流程式控制制結構

你不能在表達式中使用控制結構。這樣設計的原因在於AngularJS的設計理念之一就是邏輯代碼都應該在控制器里。如果你需要使用條件、循環、或者處理異常,你就應該寫在控制器的方法里。

過濾器

當你將數據呈獻給用戶時,你很可能需要將數據轉換為閱讀友好的格式。比方說,你可能需要在顯示之前將一個日期對象轉換為用戶本地的時間格式。你可以用鏈式的過濾器來傳遞表達式,像下面這樣:

name | uppercase
這個表達式會將name的值傳遞給uppercase這個過濾器。

鏈式過濾器使用的是下面這樣的語法:

value | filter1 | filter2
你也可以通過冒號來給過濾器傳遞參數,比如,將123顯示成帶有兩位小數的形式:123 | number:2

$符號

你可能會好奇,這個$的前綴有什麼用?其實這只是一個標記AngularJS專有屬性的符號,用來表示區別於開發者自定義屬性的符號。

AngularJS的設計是在已有的對象上添加行為。使用$做前綴的話,就能使得開發者的代碼和AngularJS的代碼和諧共處了。

㈦ angularjs 控制器中怎樣使用過濾器

內置過濾器也可以在js文件中使用,只要在angularjs組件定義時注入$filter組件,即可在內代碼中使用過容濾器。
app.controller('testC',['$scope','$filter',function($scope,$filter){
$scope.num = $filter('currency')(123534);
$scope.date = $filter('date')(new Date());
]}

㈧ angularjs $filter過濾器問題

推薦使用angular-ui-grid:
controller:
varapp=angular.mole('app',['ngTouch','ui.grid','ui.grid.pagination']);

app.controller('MainCtrl',['$scope','$http',function($scope,$http){
$scope.gridOptions1={
paginationPageSizes:[25,50,75],
paginationPageSize:25,
columnDefs:[
{name:'name'},
{name:'gender'},
{name:'company'}
]
};
}]);

html:
<divui-grid="gridOptions1"ui-grid-paginationclass="grid"></div>

㈨ Angularjs過濾器使用詳解

給大家介紹下什麼是
AngularJS?
AngularJS是一個為動態WEB應用設計的結構框架。它能讓你使用HTML作為模板語言,通過擴展HTML的語法,讓你能更清楚、簡潔地構建你的應用組件。它的創新點在於,利用󰀃數據綁定󰀃和󰀃依賴注入,它使你不用再寫大量的代碼了。這些全都是通過瀏覽器端的Javascript實現,這也使得它能夠完美地和任何伺服器端技術結合。
AngularJS是為了克服HTML在構建應用上的不足而設計的。HTML是一門很好的為靜態文本展示設計的聲明式語言,但要構建WEB應用的話它就顯得乏力了。所以我做了一些工作(你也可以覺得是小花招)來讓瀏覽器做我想要的事。
AngularJS提供了過濾器來對輸入輸出數據格式化。下面開始給大家介紹Angularjs過濾器使用,一起看看吧
•在html文件中和在js文件中使用
$scope.form_time
=
$filter('date')($scope.time,
'yyyy-MM-dd
HH:mm:ss');
<p>{{time
|
date:
'yyyy-MM-dd
HH:mm:ss'}}</p>
•內部過濾器和自定義過濾器
.filter('my_data_format',[function(){
return
function(data,str,sss){
console.log('data:
',data,'
str:
',str,'
sss:
',arguments[2]);
}
}]);
//var1就是第一個參數data,
123是第二個參數str,
this是第三個參數
<p>{{var1
|
my_data_format
:
123
:
'this'}}</p>
//對傳入的數據進行處理
.filter('my_data_format',[function(){
return
function(data,str){
var
arr=[];
angular.forEach(data,
function(one_list){
if(one_list.status
==
str){
arr.push(one_list);
}
});
return
arr;
}
}]);
//過濾器可以用在綁定的值中,也可以用在ng-if="(lists
|
my_data_format:
'2').length>0",
和ng-show等;類似的表達式中。作為判斷語句
<p
ng-repeat
=
"list
in
lists">姓名:{{list.name}},人數{{(lists
|
my_data_format:
'2').length}}</p>

㈩ 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過濾器原理相關的資料

熱點內容
清朝古裝風月片 瀏覽:883
離子交換樹脂制軟水的廢水 瀏覽:373
看片網站免費下載 瀏覽:160
擦胸的韓劇 瀏覽:300
法國大尺度電影1003法國大尺度電影 瀏覽:543
春宮妖姬女演員 瀏覽:861
德龍咖啡機除垢後還顯示除垢 瀏覽:161
歐美露J電影 瀏覽:933
山西凈水器代理哪個品牌好 瀏覽:13
霸道總裁強要女主的細節小說 瀏覽:511
電瓶加蒸餾水馬上充電 瀏覽:472
純水器出水量小怎麼辦 瀏覽:285
丁醚廢水 瀏覽:661
大尺度電影電視劇大全 瀏覽:191
自製樹脂大山圖片 瀏覽:544
推薦幾部無人區的電影 瀏覽:810
怎麼給純水機壓力桶打氣 瀏覽:104
電影院max廳什麼意思 瀏覽:758
一部三個女人是主角的韓國電影還有滑翔傘 瀏覽:57
天然樹脂腐蝕 瀏覽:469