• angular JS 过滤器


    过滤器:

     过滤器用来格式化需要展示给用户的数据。 AngularJS有很多实用的内置过滤器,也可以自己创建过滤器。

    可以使用过滤器:  前面是数据, 后面是格式
              {{ name | uppercase }} 

    可以通过$filter来调用过滤器,

    app.controller('DemoController', ['$scope', '$filter',function($scope, $filter) {
            $scope.name = $filter('lowercase')('Ari');    //使用小写过滤器,将 Ari  转换成  ari
    }]);

    数值过滤器可以限制小数点后的位数,
    {{ 123.456789 | number:2 }}        //显示: 123.46
    可以用|符号作为分割符来同时使用多个过滤器

    AngularJS提供的内置过滤器:
    currecy过滤器可以将一个数值格式化为货币格式。 {{ 123 | currency }} //显示: $123.00 date过滤器可以将日期格式化成需要的格式: {{ 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 filter过滤器可以从给定数组中选择一个子集,并将其生成一个新数组返回 过滤器的第一个参数可以是字符串、对象或是一个用来从数组中选择元素的函数。 下面分情况介绍传入不同类型的参数。  字符串    返回所有包含这个字符串的元素。  如果我们想返回不包含该字符串的元素,在参数前加!
    符号。
    {{ ['Ari','Lerner','Likes','To','Eat','Pizza'] | filter:'e' }} // ["Lerner","Likes","Eat"] 
     对象  待过滤对象的属性同这个对象中的同名属性进行比较,如果属性值是字符串就会判断是否包含该字符串。如果我们希望对全部属性都进行对比,可以将$当作键名。
    {{ [{ 'name': 'Ari', 'City': 'San Francisco', 'favorite food': 'Pizza' },
      { 'name': 'Nate', 'City': 'San Francisco', 'favorite food': 'indian food' }] | filter:{'favorite food': 'Pizza'} }} // [{"name":"Ari","City":"SanFrancisco","favoritefood":"Pizza"}]
     函数 对每个元素都执行这个函数,返回非假值的元素会出现在新的数组中并返会。 

    {{ ['Ari','likes','to','travel'] | filter:isCapitalized }} // ["Ari"]
       $scope.isCapitalized = function(str) { return str[0] == str[0].toUpperCase(); };


    将下面的对象数组用name字段进行排序:
    {{ [{ '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': 'Ari', 'status': 'awake' },
      { 'name': 'Q', 'status': 'sleeping' },
      { 'name': 'Nate','status': 'awake' }] | orderBy:'name':true }}

    <!-- [ {"name":"Q","status":"sleeping"}, {"name":"Nate","status":"awake"}, {"name":"Ari","status":"awake"} ] -->

    自定义过滤器:

    将字符串的第一个字母转为大写:

    angular.module('app', [])
            .filter('capitalize', function() {
                return function(input) {
                    // input是我们传入的字符串
                    if (input) {
                        return input[0].toUpperCase() + input.slice(1);
                    }
                }
            });

    如果想将一个句子的首字母转换成大写形式,可以用过滤器先将整个句子都转换成小写,再把首字母转换成大写:
    {{ 'ginger loves dog treats' | lowercase | capitalize }}

  • 相关阅读:
    阿里云ECS安全组之新手不得不面对的问题
    【云栖风向标】VOL.3:阿里云:对不起_这个官司我不服!
    Linux全自动安装wdcp面板脚本
    “程序员”和“码农”究竟有什么区别?
    安卓新标准出台_告别乱弹窗_你的手机真会省电么?
    16年程序员平均工资122478元_你拖后腿了没?
    6.5世界环境日!来聊聊那些你想不到的环保黑科技?
    小扎曝Facebook北极数据中心图片_最先进数据中心都建在哪?
    js之单例模式
    js 之 call 、 apply
  • 原文地址:https://www.cnblogs.com/a-lonely-wolf/p/5750778.html
Copyright © 2020-2023  润新知