zoukankan      html  css  js  c++  java
  • angularjs 自定义过滤器

    过滤器格式

    模块名称.filter('过滤器名字',function(){
      return function(被过滤数据,条件1,条件2,。。。。){
        //过滤操作
      }
    })

    一、不带条件的过滤器

    使用方式:
    *           (1)HTML中:<div>{{被过滤的数据 | 过滤器的名字}}</div>   //跟内置过滤器一样的方式
    *           (2)js中:变量 = $filter("过滤器的名字")(被过滤的code数据)    //一样的调用方式
    <!DOCTYPE html>
    <html>
    <meta charset="utf-8">
    <script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
    <body>
    <div ng-app="myApp" ng-controller="myCtrl">
    姓名: {{ msg | reverse }} //在html中使用
          {{msg2}}
    </div>
    <script>
    var app = angular.module('myApp', []);
    app.controller('myCtrl', function($scope,$filter) {
         $scope.msg = "Runoob";
        var msg = 'Hello'
         $scope.msg2 = $filter('reverse')( msg) //在js中使用
    });
    app.filter('reverse', function() { //可以注入依赖
        return function(msg) {
            return msg.split("").reverse().join("");
        }
    });
    </script>
    </body>
    </html>

    二、带条件的过滤器

    使用方式:
    *           (1)HTML中:<div>{{被过滤的数据 | 过滤器的名字:条件1:条件2:。。。}}</div>   //跟内置过滤器一样的方式
    *           (2)js中:变量 = $filter("过滤器的名字")(被过滤的code数据,条件1,条件2,。。。)    //一样的调用方式
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script src="https://cdn.bootcss.com/lodash.js/4.17.4/lodash.core.js"></script>
        <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>  
        </head>  
      <body>
    <div ng-app="myApp" ng-controller="customersCtrl"> 
    <table>
      <tr ng-repeat="x in users" ng-show = "$index | filterName:x.Name:names">//在html中調用過濾器
        <td>{{$index}}</td>
        <td>{{ x.Name }}</td>
        <td>{{ x.Country }}</td>
        <td>{{ x.City }}</td>
      </tr>
    </table>
    </div>
    
    <script>
    var app = angular.module('myApp', []);
    app.controller('customersCtrl', function($scope,$filter) {
            $scope.users = [
                {"Name":"Alfreds","City":"Berlin","Country":"Germany"},
                {"Name":"Ana","City":"México D.F.","Country":"Mexico"},
                {"Name":"Ana","City":"México D.F.","Country":"Mexico"},
                {"Name":"Beverages","City":"London","Country":"UK"},
                {"Name":"Ana","City":"México D.F.","Country":"Mexico"},
            ]
         $scope.names = ["Alfreds","Ana","Ana","Beverages","Ana"]     
    });
    app.filter('filterName',function(){
        return function(index,userName,names){
            console.log(index)
            console.log(names.indexOf(userName))
             if(index === names.indexOf(userName)) return true
                  else return false
        }
    })
    </script>
    
    </body>
    </html>
    【总结内置过滤器的使用方式】
     (1)在HTML中一般格式为:  {{被过滤的数据 | 过滤器名称:条件1:条件2.。。。}}    ;过滤条件之间用‘:’隔开.這裡要注意是英文符号
     (2)在代码中一般格式为:  变量 = $filter("过滤器名称")(被过滤数据,过滤条件1,过滤条件2,。。。。。。)
     
    【自定义过滤器】
     (1)定义格式:
               model.filter(filterName,function(){
                  return function(参数1,参数2,参数3.。。。。参数N){
                      //过滤器处理部分
                   }
               })
          model:模块名称
          filterName: 过滤器名称
          参数1:被过滤的数据
          参数2:一般为过滤条件,可以有多个,后面的参数3一直到参数N都是,根据需要添加。
  • 相关阅读:
    ~随笔A007~html中input输入框的字数限制、同步input的输入内容至div中
    ~随笔A006~微信扫码的授权、用户绑定、关注公众号、消息反馈
    【CV】实验二:特征检测与匹配
    【笔记】DLX算法及常见应用
    【笔记】和算法无关的那些东东
    【笔记】康拓展开&逆康拓展开
    【笔记】离散对数
    【笔记】Shift-And算法&Shift-OR算法
    【模板】中缀表达式求值
    【笔记】数据库系统
  • 原文地址:https://www.cnblogs.com/qiu-Ann/p/7880065.html
Copyright © 2011-2022 走看看