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