AngularJS開發指南13:AngularJS的過濾器詳解

來源:互聯網
上載者:User

標籤:

AngularJS過濾器是用來格式化輸出資料的。除了格式化資料,過濾器還能修改DOM。這使得過濾器通常用來做些如“適時的給輸出加入CSS樣式”等工作。

比如,你可能有些資料在輸出之前需要根據進行本地化。你可以向下面這樣使用鏈式的過濾器來傳遞運算式:

name | uppercase

這個運算式執行時會將name的值傳遞給uppercase過濾器。

寫一個你自己的過濾器非常容易:在你的模組中註冊一個新的過濾器(可注入的)工廠函數就行了。這個工廠函數必須返回一個新的過濾器函數,這個過濾函數的第一個參數接受的是輸入。任何過濾器參數都會被當成附加的參數傳遞給過濾器。

下面的例子展示了逆轉字串文本。另外,它有條件地將文本大寫。

<!doctype html><html ng-app="MyReverseModule">  <head>    <script src="http://code.angularjs.org/angular-1.0.2.min.js"></script>    <script src="script.js"></script>  </head>  <body>    <div ng-controller="Ctrl">      <input ng-model="greeting" type="greeting"><br>      No filter: {{greeting}}<br>      Reverse: {{greeting|reverse}}<br>      Reverse + uppercase: {{greeting|reverse:true}}<br>    </div>  </body></html>

script.js:

angular.module(‘MyReverseModule‘, []).  filter(‘reverse‘, function() {    return function(input, uppercase) {      var out = "";      for (var i = 0; i < input.length; i++) {        out = input.charAt(i) + out;      }      // conditional based on optional argument      if (uppercase) {        out = out.toUpperCase();      }      return out;    }  });function Ctrl($scope) {  $scope.greeting = ‘hello‘;}

過濾器可用在任何api或者ng.$rootScoe.Scope的執行過程中,不過一般用來格式化綁定在模板中的運算式。

{{ expression | filter }}

過濾器一般在處理過程中將資料轉變成新的格式。它能使用鏈式風格,還能接受附加參數。

你可以像下面這樣使用鏈式風格:

{{ expression | filter1 | filter2 }}

你也可以使用“:”來傳遞額外的參數給過濾器,比如,將數字123格式化成帶有2位小數的形式:

123 | number:2

下面有些例子,展示了使用不同過濾器格式化之前和之後的樣子:

  • 無過濾器: {{1234.5678}} => 1234.5678
  • 數字過濾器: {{1234.5678|number}} => 1,234.57. 注意","號和四捨五入後的後兩位。
  • 帶參數的過濾器: {{1234.5678|number:5}} => 1,234.56780. 過濾器可以接受額外的參數,參數寫在“:”的後面。比如,number過濾器接受數值型參數來制定需要展示幾位小數。

 

 

 

加油!

AngularJS開發指南13:AngularJS的過濾器詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.