美文网首页
AngularJS 过滤器

AngularJS 过滤器

作者: Antus | 来源:发表于2020-12-12 18:37 被阅读0次

    一、AngularJS 过滤器是什么?

    过滤器,顾名思义是对一个数据,或数据组进行的筛选过滤,或按规则进行的逐一修改,比如过滤字符串,将字符串统一改成大写或小写;或是在查询部分数据时,根据过滤器条件,将数据查询范围缩小;

    过滤器可以通过一个管道字符(|)和一个过滤器添加到表达式中,如:{{name | uppercase}},“uppercase”是过滤条件表达式,即将“name”中字符过滤,输出所有字符大写;

    AngularJS 过滤器可用于转换数据:
    过滤器 描述
    currency 格式化数字为货币格式。
    filter 从数组项中选择一个子集。
    lowercase 格式化字符串为小写。
    orderBy 根据某个表达式排列数组。
    uppercase 格式化字符串为大写。

    二、过滤器示例:

    1、表达式中添加过滤器

    <div ng-app="myApp" ng-controller="personCtrl">
    <p>姓名为 {{ lastName | uppercase }}</p>
    </div>

    2、向指令添加过滤器
    orderBy 过滤器根据表达式排列数组:

    <div ng-app="myApp" ng-controller="namesCtrl">
    <ul>
    //orderBy指按数组中“county”来排序
    <li ng-repeat="x in names | orderBy:'country'">
    {{ x.name + ', ' + x.country }}
    </li>
    </ul>
    </div>

    3、过滤输入
    filter 过滤器从数组中选择一个子集

    <div ng-app="myApp" ng-controller="namesCtrl">
    <p><input type="text" ng-model="test"></p>
    <ul>
    <li ng-repeat="x in names | filter:test | orderBy:'country'">
    {{ (x.name | uppercase) + ', ' + x.country }}
    </li>
    </ul>
    </div>
    表达式中将x.name以大写输出,并以“country”数据进行排序,输入框中所输入的数据,作为一个【筛选条件】,表达式中选显示的数据,将在符合【筛选条件】的前提下,进行格式化输出;

    4、自定义过滤器
    以下实例自定义一个过滤器 reverse,将字符串反转:

    <p>{{ msg | reverse }}</p>

    var app = angular.module('myApp', []);
    app.controller('myCtrl', function(scope) {scope.msg = "Runoob";
    });
    app.filter('reverse', function() { //可以注入依赖
    return function(text) {
    return text.split("").reverse().join("");
    }
    });
    输出结果:boonuR
    app.fliter声明了并实现了一个过滤器,过滤器的方法是将text文本反转,这应该是所有过滤器的原理。

    相关文章

      网友评论

          本文标题:AngularJS 过滤器

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