【AngularJS】—— 9 自定义过滤器

阅读目录

AngularJS另一个特点就是提供了过滤器,可以通过操作UNIX下管道的方式,操作数据结果。

  通过使用管道,可以便于双向的数据绑定中视图的展现。

  过滤器在处理过程中,将数据变成新的格式,而且可以使用管道这种链式风格,还能接受附加的参数。

回到顶部

  实现方式

  下面看一下如何定义声明一个过滤器,首先依然是要创建我们自己的模块myAppModule

var myAppModule = angular.module("myApp",[]);

  接下来在模块的基础上,创建过滤器:

myAppModule.filter("reverse",function(){

});

  其中reverse是过滤器的名字,后面跟着过滤器的方法声明,在方法中返回另一个方法:

myAppModule.filter("reverse",function(){
                return function(input,uppercase){
                    var out = "";
                    for(var i=0 ; i<input.length; i++){
                        out = input.charAt(i)+out;
                    }
                    if(uppercase){
                        out = out.toUpperCase();
                    }
                    return out;
                }
            });

  内部返回的方法包含了两个参数,一个是输入的值,就是我们过滤器接受的值。

  如果想要实现下面的过滤器:

  name | reverse

  则input就是其中name代表的值。

  后面的参数是可选的,我们这里接受uppercase这个bool值,判断是否要进行大小写转换。

  内部实现的代码,就没必要解释了。最后返回过滤后的字符串即可。

回到顶部

  程序样例

<!doctype html>
<html ng-app="myApp">
    <head>
         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
         <script src="http://apps.bdimg.com/libs/angular.js/1.2.16/angular.min.js"></script>
    </head>
    <body>

        <div ng-controller="myAppCtrl">
            name:{{ name }}<br>
            reverse name:{{ name | reverse }}<br>
            reverse&uppercase name:{{ name | reverse:true }}
        </div>
        <script type="text/javascript">
            var myAppModule = angular.module("myApp",[]);

            myAppModule.controller("myAppCtrl",["$scope",function($scope){
                $scope.name = "xingoo";
            }]);

            myAppModule.filter("reverse",function(){
                return function(input,uppercase){
                    var out = "";
                    for(var i=0 ; i<input.length; i++){
                        out = input.charAt(i)+out;
                    }
                    if(uppercase){
                        out = out.toUpperCase();
                    }
                    return out;
                }
            });
        </script>
    </body>
</html>

  运行结果

from:http://www.cnblogs.com/xing901022/p/4290102.html

时间: 2024-08-10 23:20:23

【AngularJS】—— 9 自定义过滤器的相关文章

AngularJS中自定义过滤器

AngularJS中为我们提供了一些内置的过滤器,这里列举一些自定义过滤器的场景. 自定义过滤器,不带参赛 //过滤 不带参赛 app.filter('ordinal', function () { return function (number) { if (isNaN(number) || number < 1) { return number; } else { var lastDigit = number % 10; if (lastDigit === 1) { return numbe

AngularJS:自定义过滤器

表达式:         {{ expression | filter1 | filter2 | ... }}         {{ expression | filterName : parameter1 : ...parameterN }}         ng-repeat="a in array | filter " 一.第一种单参数过滤器: 原有数据:a乔乐过滤数据:a乔乐[追加内容:单参数在此过滤!] 本节课程源码: 1 2 3 4 5 6 <h3>一.第一种过

AngularJS Filter(过滤器)用法

一.在视图模板(View Template)中使用 在表达式中应用Filters (过滤器) 需要遵循格式如下: {{ expression | filter }}        即         {{ 表达式 | 过滤器 }} 例如:{{ 12 | currency }}     输出为    $12.00 在输出结果中应用Filters (过滤器) 通俗点讲就是Filter的叠加--前一filter的输出结果作为后一filter的输入数据源. 需要遵循格式如下: {{ expression

angularjs随笔01 数据双向绑定理解 自定义过滤器 时钟更新列子

1.   数据的双向绑定可以简单的理解为,无论在文本框中输入什么,都会在数据模型中显示出来输入的内容, 双向绑定的模型和数据是进行动态绑定的,实时检查进行修改. <input type="text" ng-model="name"> {{name}} 在上述代码中,通过angular.js将数据模型对象($scope)的name属性与文本模型绑定在一起,然后就实现了在输入框输入什么都会 在文本模型中显示对应的内容,实时更新. 控制器controller,

创建 AngularJS 自定义过滤器,带自定义参数

Angularjs过滤器是 angularjs非常棒的特性之一.有朝一日,你可能需要使用自定义过滤器,幸运的是,你找到了这篇博文. 下面显示的是自定义过滤器长什么样子(请注意myfilter): <tr ng-repeat="friend in friends |myfilter:'param1':'param2':true:'windowScopedFilter'"> 我们的自定义过滤器叫做 "myfilter", 它有由 ':'隔开的4个参数. 这是

angularJs的过滤器扩展及自定义过滤器

一.过滤器扩展 1.过滤器的组合使用 <!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档</title> <script src="angular.min.js&

angularJS自定义过滤器、服务和指令

自定义过滤器 1 mainApp.filter('mayfilter',function(){ 2 return function(input){ 3 (过滤逻辑代码) 4 } 5 });   自定义创建指令 1 mainApp.derectiv("derectiveName",function(){ 2 return { 3 restrict:"E", //定义类型:E(元素),C(class),A(属性),M(注释) 4 template:"<p

前端MVC学习总结——AngularJS验证、过滤器

前端MVC学习总结--AngularJS验证.过滤器 目录 一.验证 二.过滤器 2.1.内置过滤器 2.1.1.在模板中使用过滤器 2.1.2.在脚本中调用过滤函数 2.2.自定义过滤器 三.指令(directive) 3.1.支持AngularJS功能的指令 3.1.1.应用与模块(ng-app) 3.1.2.控制器(ng-Controller) 3.1.3.包含(ng-Include) 3.1.4.不绑定(ngNonBindable) 3.2.扩展表单元素的指令 3.2.1.ng-opti

angularjs之filter过滤器

现在公司用ionic,就是基于angularjs封装了一些api用于webapp,最近用的angularjs的filter确实省了很多代码,现在总结一下! ng比较鸡肋的过滤器,这里就一笔带过吧!鸡汤类常用的filter后面上例子. lowercase(小写) {{ lastName | lowercase }} uppercase(大写) {{ lastName | uppercase }} number(格式化数字) number过滤器可以为一个数字加上千位分割,像这样,123,456,78

AngularJS中的过滤器(filter)

AngularJS中的过滤器是用于对数据的格式化,或者筛选的函数,可以直接通过以下语法使用: {{expression|filter}} {{expression|filter1|filter2}} {{expression|filter1:param1,param2,...|filter2} 过滤器的种类有number,currency,date,json,limitTo,lowercase,uppercase,filter,orderBy. <!DOCTYPE html> <html