怎样使用AngularJS自定义过滤器用法

这次给大家带来怎样使用AngularJS自定义过滤器用法,使用AngularJS自定义过滤器用法的注意事项有哪些,下面就是实战案例,一起来看一下。

过滤器结构

{{带过滤数据 | 过滤器名:参数1:参数2:参数3.....}}app.filter('过滤器名', function () {    return function (待过滤数据, 参数....) {           ......      return 已过滤数据; }

登录后复制

示例一:是否包含

    

<!---->
Name Phone
{{friend.name}} {{friend.phone}}

var app = angular.module("myApp", []); app.controller("myAppCtrl", ["$scope", function ($scope) { $scope.friends = [{name: 'John', phone: '44555-1276'}, {name: 'Annie', phone: '800-BIG-MARY'}, {name: 'Mike', phone: '11555-4321'}, {name: 'Adam', phone: '33555-5678'}, {name: 'David', phone: '387555-8765'}, {name: 'Mikay', phone: '555-5678'}]; }]); app.filter("myfilter", function () { return function (input) { var output = []; angular.forEach(input, function (value, key) { console.log("value==" + JSON.stringify(value)); console.log("value.phone类型==" + typeof (value.phone)); console.log("value.phone.indexOf==" + value.phone.indexOf("555")); /*js中没有contains方法,使用indexOf来判断字符串是否包含*/ /*indexOf字符串出现的位置,没有则返回-1*/ //方法一: if (value.phone.indexOf("555") >= 0) { output.push(value); } //方法二:// if (value.phone.indexOf("555") !== -1) {// output.push(value);// } }); return output; } });

登录后复制

示例二:倒序

    

姓名:{{ name }}
倒序:{{ name | reverse }}
倒序并大写:{{ name | reverse:true }}

var myAppModule = angular.module("myApp", []); myAppModule.controller("myAppCtrl", ["$scope", function ($scope) { $scope.name = "xuqiang"; }]); 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; } });

登录后复制

示例三:替换

    

{{welcome | replaceHello}}
{{welcome | replaceHello:3:5}}

var app = angular.module("myApp", []); app.controller("myAppCtrl", ["$scope", function ($scope) { $scope.welcome = "Hello AngularJs"; }]); //自定义过滤器 app.filter('replaceHello', function () { return function (input, n1, n2) { console.log("input==" + input); console.log("n1==" + n1); console.log("n2==" + n2); return input.replace(/Hello/, '您好'); } });

登录后复制

示例四:筛选

  自定义过滤器        body {      font-size: 12px;    }    ul {      list-style-type: none;      width: 408px;      margin: 0px;      padding: 0px;    }    ul li {      float: left;      padding: 5px 0px;    }    ul .odd {      color: #0026ff;    }    ul .even {      color: #ff0000;    }    ul .bold {      font-weight: bold;    }    ul li span {      width: 52px;      float: left;      padding: 0px 10px;    }    ul .focus {      background-color: #cccccc;    }  

  • 序号 姓名 性别 年龄 分数
  • {{$index+1}} {{stu.name}} {{stu.sex}} {{stu.age}} {{stu.score}}

var a3_3 = angular.module('a3_3', []); a3_3.controller('c3_3', ['$scope', function ($scope) { $scope.bold = "bold"; $scope.data = [ {name: "张明明", sex: "女", age: 24, score: 95}, {name: "李清思", sex: "女", age: 27, score: 87}, {name: "刘小华", sex: "男", age: 28, score: 86}, {name: "陈忠忠", sex: "男", age: 23, score: 97} ]; }]); a3_3.filter('young', function () { return function (e, type) { var _out = []; var _sex = type ? "男" : "女"; for (var i = 0; i 22 && e[i].age < 28 && e[i].sex == _sex) _out.push(e[i]); } return _out; } });

登录后复制

示例五:排序

  表头排序        body {      font-size: 12px;    }    ul {      list-style-type: none;      width: 408px;      margin: 0px;      padding: 0px;    }    ul li {      float: left;      padding: 5px 0px;    }    ul .bold {      font-weight: bold;      cursor: pointer;    }    ul li span {      width: 52px;      float: left;      padding: 0px 10px;    }    ul .focus {      background-color: #cccccc;    }  

  • 序号 姓名 性别 年龄 分数
  • {{$index+1}} {{stu.name}} {{stu.sex}} {{stu.age}} {{stu.score}}

var a3_4 = angular.module('a3_4', []); a3_4.controller('c3_4', ['$scope', function ($scope) { $scope.bold = "bold"; $scope.title = 'name'; $scope.desc = 0; $scope.data = [ {name: "张明明", sex: "女", age: 24, score: 95}, {name: "李清思", sex: "女", age: 27, score: 87}, {name: "刘小华", sex: "男", age: 28, score: 86}, {name: "陈忠忠", sex: "男", age: 23, score: 97} ]; }])

登录后复制

示例六:输入过滤

  字符查找        body {      font-size: 12px;    }    ul {      list-style-type: none;      width: 408px;      margin: 0px;      padding: 0px;    }    ul li {      float: left;      padding: 5px 0px;    }    ul .bold {      font-weight: bold;      cursor: pointer;    }    ul li span {      width: 52px;      float: left;      padding: 0px 10px;    }    ul .focus {      background-color: #cccccc;    }  

  • 序号 姓名 性别 年龄 分数
  • {{$index+1}} {{stu.name}} {{stu.sex}} {{stu.age}} {{stu.score}}

var a3_5 = angular.module('a3_5', []); a3_5.controller('c3_5', ['$scope', function ($scope) { $scope.bold = "bold"; $scope.key = ''; $scope.data = [ {name: "张明明", sex: "女", age: 24, score: 95}, {name: "李清思", sex: "女", age: 27, score: 87}, {name: "刘小华", sex: "男", age: 28, score: 86}, {name: "陈忠忠", sex: "男", age: 23, score: 97} ]; }])

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

怎样使用Vue中字符串模板

如何处理Mac安装thrift因bison报错

以上就是怎样使用AngularJS自定义过滤器用法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2754774.html

(0)
上一篇 2025年3月8日 07:00:35
下一篇 2025年2月25日 15:30:49

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • mac内nodejs如何更新最新版本

    这次给大家带来mac内nodejs如何更新最新版本,mac内nodejs更新最新版本的注意事项有哪些,下面就是实战案例,一起来看一下。 前提条件 * mac上注意事项了npm 第一步:使用npm安装n模块 n模块是专门用来管理nodejs版…

    编程技术 2025年3月8日
    200
  • 如何使用JS实现分页打印

    这次给大家带来如何使用JS实现分页打印,使用JS实现分页打印的注意事项有哪些,下面就是实战案例,一起来看一下。 在调用window.print()时,可以实现打印效果,但内容太多时要进行分页打印。 在样式中有规定几个打印的样式 page-b…

    编程技术 2025年3月8日
    200
  • 在vue中使用jointjs的方法

    本篇文章主要介绍了在vue中使用jointjs的方法,现在分享给大家,也给大家做个参考。 在vue中引入joint.js的问题,之前在网上搜了很多,都没有给出一个确切的答案,捣鼓了两天终于弄明白了,做个记录。首先,我参考了一篇来自stack…

    编程技术 2025年3月8日
    200
  • 怎样操作JS使用window对象内print方法实现分页打印

    这次给大家带来怎样操作JS使用window对象内print方法实现分页打印,操作JS使用window对象内print方法实现分页打印的注意事项有哪些,下面就是实战案例,一起来看一下。 1.但是网上好多案例都不支持分页功能,最后通过CSS的p…

    编程技术 2025年3月8日
    200
  • 怎样使用js实现鼠标单击Tab表单切换

    这次给大家带来怎样使用js实现鼠标单击Tab表单切换,使用js实现鼠标单击Tab表单切换的注意事项有哪些,下面就是实战案例,一起来看一下。 代码: *{ padding: 0; margin: 0; border:0; } body{ te…

    2025年3月8日
    200
  • 怎样使用AngularJS实现标签页tab选项卡切换

    这次给大家带来怎样使用AngularJS实现标签页tab选项卡切换,使用AngularJS实现标签页tab选项卡切换的注意事项有哪些,下面就是实战案例,一起来看一下。 选项卡一: JavaScript+html+css js标签页tab切换…

    编程技术 2025年3月8日
    200
  • 怎样处理linux下node.js全局模块无法找到

    这次给大家带来怎样处理linux下node.js全局模块无法找到,处理linux下node.js全局模块无法找到的node.js有哪些,下面就是实战案例,一起来看一下。 今天在在linux上用npmnode.js了pm2准备部署node项目…

    编程技术 2025年3月8日
    200
  • 怎样使用AngularJS作用域

    这次给大家带来怎样使用AngularJS作用域,使用AngularJS作用域的AngularJS有哪些,下面就是实战案例,一起来看一下。 问题引入 使用 Angular 进行过一段时间的开发后,基本上都会遇到一个这样的坑: {{name}}…

    编程技术 2025年3月8日
    200
  • Node.js实现注册邮箱激活功能的方法示例

    现在很多网站都需要有注册邮箱激活的功能,本篇文章主要介绍了node.js实现注册邮箱激活功能的方法示例,现在分享给大家,也给大家做个参考。 在做自己的node项目极客教程时,需要开发一个注册邮箱激活的功能,这个功能非常常见,当我们注册一个账…

    2025年3月8日
    200
  • 怎样使用seajs在require书写约定

    这次给大家带来怎样使用seajs在require书写约定,使用seajs在require书写约定的注意事项有哪些,下面就是实战案例,一起来看一下。 require 书写约定 使用 Sea.js 书写模块代码时,需要遵循一些简单规则。 只是书…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论