AngularJS中多種過濾器的使用

                

  hello,everybady~~~  今天有人問我怎麼使用過濾器,我就簡單的做了個總結,大家一起來糾錯唄~


 對於正在工作的樓主來說,也覺得當時學習Angular稍稍有點頭疼,知識點很多,也挺懷念那時候一心扎進代碼的我們,同樣也解決了不少問題

我就是有點閒不住,愛逛社區,看到很多大神都在分享自己敲代碼遇到的那些坑,也決定加入這個小行列,說說最近遇到的東西~

有個初學者問我怎麼使用過濾器,今天做個詳細的介紹:

 過濾器


AngularJS

過濾器(filter)正如其名,作用就是接收一個輸入,通過某個規則進行處理,然後返回處理後的結果。主要用在數據的格式化上,例如獲取一個數組中的子集,對數組中的元素進行排序等。


基本句法:

過濾器可以通過一個管道字符(|)和一個過濾器添加到表達式中。

{{expression | filter }}



ng內置了一些過濾器

它們是:currency(貨幣)、date(日期)、filter(子串匹配)、json(格式化json對象)、limitTo(限制個數)、lowercase(小寫)、uppercase(大寫)、number(數字)、orderBy(排序)


下面就舉例一一來說一下:

1 貨幣過濾器

               
		<div>
			原始輸出方式:<span ng-bind="price"></span>
		</div>
		<div>
			通過拼接輸出數據的方式:¥<span ng-bind="price"></span>
		</div>
		<div>
			<p>對於要展示的貨幣數據【原始數據就是數字】按照指定的貨幣格式進行輸出</p>
			貨幣過濾器輸出:<span ng-bind="price | currency"></span><br />
                        貨幣過濾器輸出:<span ng-bind="price | currency:'人民幣¥'"></span><br />
                        貨幣過濾器輸出:<span ng-bind="price | currency:'¥':3"></span><br />  <!--小數點後3位-->                     
		</div>


               <script>     
                        var app=angular.module("myApp",[]);
		        app.controller("myCtrl",["$scope",function($scope){
			$scope.price=500.1314;
                       }]);
               </script>


大家可以工具裏運行一下。首先是原始的輸出方法

使用currency可以將數字格式化爲貨幣,默認是美元符號,你也可以自己傳入所需的符號,例如上面傳入的人民幣。


2 日期時間過濾器


		<div>
		        原始輸出:<span ng-bind="date"></span>
		</div>
		<div>
		        日期格式化:<span ng-bind="date |date"></span>
		</div>
		<div>
			<span ng-bind="date |date:'yyyy年MM月dd日 hh:mm:ss'"></span>
			<span ng-bind="date |date:'yyyy年MM月dd日'"></span><br />
			<span ng-bind="date |date:'hh:mm:ss'"></span>
		</div>

                 <script>     
                        var app=angular.module("myApp",[]);
		        app.controller("myCtrl",["$scope",function($scope){
			$scope.date=new Date();
                       }]);
                 </script>

  日期格式化:

         原生的js對日期的格式化能力有限,ng提供的date過濾器基本可以滿足一般的格式化要求

         通常情況下,通常按照用戶的要求進行輸出,這時就會附帶參數
y/M/d/h/m/s/E  年/月/日/時/分/秒/星期
     案例中最後兩個就是根據自己的需要加參數。


3 過濾輸出

		關鍵詞:<input type="text" ng-model="keyword"/>
		<br />
		<ul>
			<li ng-repeat="u in users |filter:keyword">
				<span ng-bind="u.userID"></span>***
				<span ng-bind="u.username"></span>***
				<span ng-bind="u.nickname"></span>
			</li>
		</ul>   
 

               <script>
		  var app=angular.module("myApp",[]);
		  app.controller("myCtrl",["$scope",function($scope){
			$scope.users=[
			    {userID:1,username:"baiqian",nickname:"白淺"},
			    {userID:2,username:"fengjiu",nickname:"鳳九"},
			    {userID:3,username:"yehua",nickname:"夜華"},
			    {userID:4,username:"ali",nickname:"阿離"},
			    {userID:5,username:"donghua",nickname:"東華"},
			    {userID:6,username:"erge",nickname:"二哥"},
			
			]
		}]);

通過關鍵字來過濾輸出和查找 如上面的例子,如果輸入b 就會出現userID中的“baiqian”。

4.JSON 過濾

	        <span ng-bind="users|json"></span>

 數據中的對象,轉換成JSON字符串的格式輸出展示到頁面上, 經常能用於代碼程序調試,這個使用較少!


5 長度限制過濾器

              長度:<input type="text" ng-model="length"/><br />
	      位置:<input type="text" ng-model="index"/> 
           <ul>
               <li ng-repeat="u in users | limitTo:length:index">
                  <span ng-bind="u.userID"></span>
                  <span ng-bind="u.username"></span>
                  <span ng-bind="u.nickname"></span>
              </li>
          </ul>

這裏的username ID nickname對應的跟上面的 過濾輸出 一樣,limitTo是截取長度 index是下標



6 字符串大小寫轉換過濾器

        <div ng-bind="name"></div>
        <div ng-bind="name | uppercase"></div>
        <div ng-bind="name | lowercase"></div>

         <script>     
                var app=angular.module("myApp",[]);
		app.controller("myCtrl",["$scope",function($scope){
	        $scope.name="Summer Wang";
             }]);
           </script>

uppercase 大寫   lowercase小寫 


7 排序輸出


              排序關鍵詞:<input type="text" ng-model="kerword"/><br/>
	      排序順序:<input type="checkbox" ng-model="sort"/>倒序
           <ul>
               <li ng-repeat="u in users | orderBy:keyword:sort">
                   <span ng-bind="u.userID"></span>****
                   <span ng-bind="u.username"></span>****
                   <span ng-bind="u.nickname"></span>
              </li>
          </ul>

 orderBy 排序   默認false 降序   true升序


8 number

{{149016.1945000 | number:2}}
保留小數


以上都是內置的一些過濾器,應用起來不難,裏面有些常見的,有需要的儘管copy,有問題的再糾正 吐舌頭

除此之外還可以自定義過濾器,這個就強大了,可以滿足任何要求的數據處理。如果有需要,下篇文章再來分享哈~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章