AngularJS入門教程之過濾器用法樣本_AngularJS

來源:互聯網
上載者:User

本文執行個體講述了AngularJS過濾器用法。分享給大家供大家參考,具體如下:

在前面幾節裡我們已經接觸過AngularJS的運算式,運算式的作用是向視圖中輸出字面量或$scope對象中的屬性值。在輸出之前我們可以通過過濾器來格式化輸出的資料。

過濾器的使用非常簡單,我們看一下下面的代碼:

<!DOCTYPE html><html ng-app><head lang="en"> <meta charset="UTF-8"> <script type="text/javascript" src="angular-1.3.0.14/angular.js"></script> <title>tutorial05_1</title></head><body> <p>{{"HELLO WORLD!"| lowercase}}</p> <p>{{"hello world!"| uppercase}}</p> <p>{{3.1415926| number:2}}</p> <p>{{3011| currency}}</p></body></html>

兩個嵌套的大括弧即為AngularJs的運算式,我們通過|字元後跟上過濾器名稱來調用該過濾器。lowercase,uppercase,number,currency為AngularJs內建的過濾器。

lowercase用來把文本中的字母轉換為小寫,uppercase和它相反,number過濾器用來控制數位格式,currency則把數字轉換成金額格式。

我們看一下在瀏覽器中的效果:

AngularJs提供的內建過濾器功能很有限,下面介紹如何自訂過濾器。

<!DOCTYPE html><html ng-app="filterMod"><head lang="en"> <meta charset="UTF-8"> <script type="text/javascript" src="angular-1.3.0.14/angular.js"></script> <title>tutorial05_2</title></head><body> <p>{{11314| toRMB}}</p><script> var filterMod = angular.module("filterMod",[]); filterMod.filter("toRMB",function($log) {  var toRMB = function(input)  {   var RMBNum = ['零',"壹","貳","三","肆","伍","陸","柒","捌","玖","拾","佰","仟","萬","億"];   var inputStr = input + "";   var inputArr = new Array();   for(i=0;i<inputStr.length;i++)   {    var temp = parseInt(input % 10);    inputArr.push(temp);    switch(i)    {     case 0:inputArr.push(10);      break;     case 1:inputArr.push(11);      break;     case 2:inputArr.push(12);      break;     case 3:inputArr.push(13);      break;    }    input = input / 10;   }   inputArr = inputArr.reverse();   var output = "";   for(i=0;i<inputArr.length;i++)   {    output += RMBNum[inputArr[i]];   }   return output;  }  return toRMB; });</script></body></html>

上面是筆者自訂的一個將數字轉換成人民幣大寫漢字的過濾器。

filterMod.filter("toRMB",function($log)...

過濾器的定義和控制器類似,我們通過AngularJs模組的filter方法來完成,第一個參數為過濾器的名稱,第二個參數為過濾器實現部分,它必須返回一個資料處理函數。

var toRMB = function(input)...

這一部分為資料處理函數,input為原始輸入資料,我們在該函數中對輸入資料進行處理,然後return 處理過後的資料即可。

在瀏覽器中效果:

注意:這個toRMB 過濾器只是筆者為了示範自訂過濾器的方法而編寫的,還有很多不足的地方,有興趣的讀者可以自行完善。

AngularJS源碼可點擊此處本站下載

希望本文所述對大家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.