angular 時間戳 轉 格式化日期( 過濾器 )


angular學習筆記【 一 】

angular 時間戳 轉 格式化日期( 過濾器 )

如果我們得到一個unix的時間戳,我們需要將它轉換成另外一種格式之后才能顯示給用戶,這轉換的一步就是過濾器。

用戶register時,可能會輸入一些奇怪的內容,要是大家要做防范,對用戶輸入的內容進行過濾,這也得用到過濾器。

在angular中內置了幾個常用的filter,可以簡化我們的操作。過濾器使用 '|' 符號,概念有點類似於linux中的管道。

1、currency貨幣過濾器

有時候我們需要把數字顯示為貨幣的形式方便展示,可以使用currency進行格式化

{{1000 | currency }}
{{1000 | currency:"RMB ¥" }}

顯示:

$1,000.00
RMB ¥1,000.00

 

2、date時間格式化過濾器

在系統后台返回的數據中,時間字段,我們可能使用的是時間戳,Long型,在頁面顯示中肯定格式化為類似於‘2012-12-12 12:12:12’的字符串,使用date過濾器即可

{{1423130269432 | date:'yyyy-MM-dd HH:mm:ss'}}

顯示:

2015-02-05 17:57:49

 

示例:

<div ng-controller="TestCtrl">
  {{ a | date: 'yyyy-MM-dd HH:mm:ss' }}
  </div>
  
  <script type="text/javascript">
  var TestCtrl = function($scope){
    $scope.a = ((new Date().valueOf()));
  }
  
  angular.bootstrap(document.documentElement);
  </script>

 

3、filter (過濾列表)

filter可以根據條件過濾數據。

filter 是一個過濾內容的標簽,如果參數是一個字符串,則列表成員中的任意屬性值中有這個字符串,即為滿足條件(忽略大小寫)。

{{[{name:'coolcao',age:23},{name:'lily',age:20},{name:'tom',age:22}] | filter:'coolcao'}}

顯示:

[{"name":"coolcao","age":23}]

 

示例:

<div ng-controller="TestCtrl">
    {{ data | filter: 'b' }} <br />
    {{ data | filter: '!B' }} <br />
  </div>
  
  <script type="text/javascript">
  var TestCtrl = function($scope){
    $scope.data = [
      {name: 'B', age: 4},  
      {name: 'A', age: 1},  
      {name: 'D', age: 3},  
      {name: 'C', age: 3},  
    ];
  }
  
  angular.bootstrap(document.documentElement);
  </script>

可以使用對象,來指定屬性名, $ 表示任意屬性:

{{ data | filter: {name: 'A'} }} <br />
{{ data | filter: {$: '3'} }} <br />
{{ data | filter: {$: '!3'} }} <br />

自定義的過濾函數也支持:

<div ng-controller="TestCtrl">
    {{ data | filter: f }} <br />
  </div>
  
  <script type="text/javascript">
  var TestCtrl = function($scope){
    $scope.data = [
      {name: 'B', age: 4},  
      {name: 'A', age: 1},  
      {name: 'D', age: 3},  
      {name: 'C', age: 3},  
    ];
  
    $scope.f = function(e){
      return e.age > 2;
    }
  }
  
  angular.bootstrap(document.documentElement);
  </script>

 

4、number : 數字格式化

{{ 3.1415926 | number:1 }}
{{ 3.1415926 | number:2 }}
{{ -3.1415926 | number:2 }}
{{ 3 | number:2 }}
{{ 0.002 | number:2 }}
{{ 0.009 | number:2 }}
{{100 | number}}
{{1000 | number}}
{{1000 | number:2}}

顯示:

3.1
3.14
-3.14
3.00
0.00
0.01
100
1,000
1,000.00

 

5、orderBy 排列

orderBy 是一個排序用的過濾器標簽。它可以像 sort 函數那樣支持一個排序函數,也可以簡單地指定一個屬性名進行操作。

{{[{name:'coolcao',age:23},{name:'lily',age:20},{name:'tom',age:22}] | orderBy:'age'}}

顯示:

[{"name":"lily","age":20},{"name":"tom","age":22},{"name":"coolcao","age":23}]

默認是升序排列,如果要倒序:

{{[{name:'coolcao',age:23},{name:'lily',age:20},{name:'tom',age:22}] | orderBy:'age':true}}

 

示例:

<div ng-controller="TestCtrl">
    {{ data | orderBy: 'age' }} <br />
    {{ data | orderBy: '-age' }} <br />
    {{ data | orderBy: '-age' | limitTo: 2 }} <br />
    {{ data | orderBy: ['-age', 'name'] }} <br />
  </div>
  
  
  <script type="text/javascript">
  var TestCtrl = function($scope){
    $scope.data = [
      {name: 'B', age: 4},  
      {name: 'A', age: 1},  
      {name: 'D', age: 3},  
      {name: 'C', age: 3},  
    ];
  }
  
  angular.bootstrap(document.documentElement);
  </script>

 

6、json格式化

{{[{name:'coolcao',age:23},{name:'lily',age:22},{name:'tom',age:22}] | json}}

顯示:

[ { "name": "coolcao", "age": 23 }, { "name": "lily", "age": 22 }, { "name": "tom", "age": 22 } ]

注:輸入是js的對象(非標准json),輸出的是標准的json字符串(屬性名稱會用雙引號)

 

7、大小寫轉換: uppercase,lowercase

{{'abc' | uppercase}}

顯示:

ABC

注:uppercase,lowercase只能對字符串進行過濾轉換


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM