美文网首页
AngularJS学习之路——过滤器(1)

AngularJS学习之路——过滤器(1)

作者: lemonade_a | 来源:发表于2017-10-19 13:06 被阅读10次

    过滤器

    过滤器用来格式化需要展示给用户的数据。
    使用方法:通过 | 进行数据的格式化。
    拿这个{{ name | uppercase }}举例,| 前面是需要过滤的内容,| 后面是过滤的规则,这个过滤器的意思是将前面name数据进行大写转换。

    内置过滤器

    currency、date、filter、json、limitTo、lowercase、uppercase、number、orderBy

    1.currency

    currency过滤器可以将一个数值格式化为货币格式。

    {{ 123 | currency }}             <!-- $123 -->
    {{ 123 | currency:'¥' }}        <!--¥123 -->
    

    2.date

    date过滤器可以将日期格式化成需要的格式。

    js:
    $scope.today = new Date().getTime();
    
    html:
    {{ today | date:'medium' }} <!-- Aug 09, 2013 12:09:02 PM -->
    {{ today | date:'short' }} <!-- 8/9/1312:09PM -->
    {{ today | date:'fullDate' }} <!-- Thursday, August 09, 2013 -->
    {{ today | date:'longDate' }} <!-- August 09, 2013 -->
    {{ today | date:'mediumDate' }}<!-- Aug 09, 2013 -->
    {{ today | date:'shortDate' }} <!-- 8/9/13 -->
    {{ today | date:'mediumTime' }}<!-- 12:09:02 PM -->
    {{ today | date:'shortTime' }} <!-- 12:09 PM -->
    
    • 年份格式化
    四位年份:{{ today | date:'yyyy' }} <!-- 2013 -->
    两位年份:{{ today | date:'yy' }} <!-- 13 -->
    一位年份:{{ today | date:'y' }} <!-- 2013 -->
    
    • 月份格式化
    英文月份:{{ today | date:'MMMM' }} <!-- August -->
    英文月份简写:{{ today | date:'MMM' }} <!-- Aug -->
    数字月份:{{ today |date:'MM' }} <!-- 08 -->
    一年中的第几个月份:{{ today |date:'M' }} <!-- 8 -->
    
    • 日期格式化
    数字日期:{{ today|date:'dd' }} <!-- 09 -->
    一个月中的第几天:{{ today | date:'d' }} <!-- 9 -->
    英文星期:{{ today | date:'EEEE' }} <!-- Thursday -->
    英文星期简写:{{ today | date:'EEE' }} <!-- Thu -->
    
    • 小时格式化
    24小时制数字小时:{{today|date:'HH'}} <!--00-->
    一天中的第几个小时:{{today|date:'H'}} <!--0-->
    12小时制数字小时:{{today|date:'hh'}} <!--12-->
    上午或下午的第几个小时:{{today|date:'h'}} <!--12-->
    
    • 分钟格式化
    数字分钟数:{{ today | date:'mm' }} <!-- 09 -->
    一个小时中的第几分钟:{{ today | date:'m' }} <!-- 9 -->
    
    • 秒数格式化
    数字秒数:{{ today | date:'ss' }} <!-- 02 -->
    一分钟内的第几秒:{{ today | date:'s' }} <!-- 2 -->
    毫秒数:{{ today | date:'.sss' }} <!-- .995 -->
    
    • 字符格式化
    上下午标识:{{ today | date:'a' }} <!-- AM -->
    四位时区标识:{{ today | date:'Z' }} <!--- 0700 -->
    
    • 自定义日期格式
    {{ today | date:'MMMd, y' }} <!-- Aug9, 2013 -->
    {{ today | date:'EEEE, d, M' }} <!-- Thursday, 9, 8-->
    {{ today | date:'hh:mm:ss.sss' }} <!-- 12:09:02.995 -->
    

    3.filter

    filter过滤器可以从给定数组中选择一个子集,并将其生成一个新数组返回。这个过滤器通常用来过滤需要进行展示的元素。

    4.json

    son过滤器可以将一个JSON或JavaScript对象转换成字符串。

    {{ {'name': 'Ari', 'City': 'SanFrancisco'} | json }}
    <!--
    {
      "name": "Ari",
      "City": "San Francisco"
    }
    -->
    

    5.limitTo

    limitTo过滤器会根据传入的参数生成一个新的数组或字符串,新的数组或字符串的长度取决于传入的参数,通过传入参数的正负值来控制从前面还是从后面开始截取。

    {{ San Francisco is very cloudy | limitTo:3 }}
    <!-- San -->
    
    {{ San Francisco is very cloudy | limitTo:-6 }}
    <!-- cloudy -->
    
    {{ ['a','b','c','d','e','f'] | limitTo:1 }}
    <!-- ["a"] -->
    

    6.lowercase

    lowercase过滤器将字符串转为小写。

    7.uppercase

    uppercase过滤器将字符串转为大写。

    8.number

    number过滤器将数字格式化成文本。它的第二个参数是可选的,用来控制小数点后截取的位数(如果传入了一个非数字字符,会返会空字符串)。

    {{ 123456789 | number }}
    <!-- 1,234,567,890 -->
    
    {{ 1.234567 | number:2 }}
    <!-- 1.23 -->
    

    9.orderBy

    orderBy过滤器可以用表达式对指定的数组进行排序。
    orderBy可以接受两个参数,第一个是必需的,第二个是可选的。
    第一个参数是用来确定数组排序方向的谓词。

    第一个参数的类型

    • 函数
      当第一个参数是函数时,该函数会被当作待排序对象的getter方法。
    • 字符串
      对这个字符串进行解析的结果将决定数组元素的排序方向。我们可以传入+或-来强制进行升序或降序排列。
    • 数组
      在排序表达式中使用数组元素作为谓词。对于与表达式结果并不严格相等的每个元素,则使用第一个谓词。

    第二个参数用来控制排序的方向(是否逆向)。

    {{ [{
       'name': 'Ari',
       'status': 'awake'
       },{
       'name': 'Q',
       'status': 'sleeping'
       },{
       'name': 'Nate',
       'status': 'awake'
       }] | orderBy:'name' }}
    <!--
    [
      {"name":"Ari","status":"awake"},
      {"name":"Nate","status":"awake"},
      {"name":"Q","status":"sleeping"}
    ]
    -->
    
    第二个参数为true时
    <!--
    [
      {"name":"Q","status":"sleeping"},
      {"name":"Nate","status":"awake"},
      {"name":"Ari","status":"awake"}
    ]
    -->
    

    相关文章

      网友评论

          本文标题:AngularJS学习之路——过滤器(1)

          本文链接:https://www.haomeiwen.com/subject/wpsuuxtx.html