AngularJS中为我们提供了一些内置的过滤器,这里列举一些自定义过滤器的场景。

自定义过滤器,不带参赛

  1. //过滤 不带参赛
  2. app.filter('ordinal', function () {
  3. return function (number) {
  4. if (isNaN(number) || number < 1) {
  5. return number;
  6. } else {
  7. var lastDigit = number % 10;
  8. if (lastDigit === 1) {
  9. return number + 'st'
  10. } else if (lastDigit === 2) {
  11. return number + 'nd'
  12. } else if (lastDigit === 3) {
  13. return number + 'rd'
  14. } else if (lastDigit > 3) {
  15. return number + 'th'
  16. }
  17. }
  18. }
  19. });

大致这样使用:

{{777 | ordinal}}

过滤 带参赛

把某个位置上的字母转换成大写。

  1. //过滤 带参赛
  2. app.filter('capitalize', function () {
  3. //input 需要过滤的元素
  4. //char位置,索引减一
  5. return function (input, char) {
  6. if (isNaN(input)) {
  7. //如果序号位置没有设置,索引位置默认是0
  8. var char = char - 1 || 0;
  9. //把过滤元素索引位置上的字母转换成大写
  10. var letter = input.charAt(char).toUpperCase();
  11. var out = [];
  12. for (var i = 0; i < input.length; i++) {
  13. if (i == char) {
  14. out.push(letter);
  15. } else {
  16. out.push(input[i]);
  17. }
  18. }
  19. return out.join('');
  20. } else {
  21. return input;
  22. }
  23. }
  24. });

大致这样使用:

{{'seven' | capitalize:3}}

过滤集合

过滤出集合中满足某种条件的元素。

  1. var app = angular.module('filters', []);
  2.  
  3. app.controller('demo', function ($scope) {
  4.  
  5. $scope.languages = [
  6. {name: 'C#', type: 'static'},
  7. {name: 'PHP', type: 'dynamic'},
  8. {name: 'Go', type: 'static'},
  9. {name: 'JavaScript', type: 'dynamic'},
  10. {name: 'Rust', type: 'static'}
  11. ];
  12. });
  13.  
  14. //过滤集合
  15. app.filter('staticLanguage', function () {
  16. return function (input) {
  17. var out = [];
  18.  
  19. angular.forEach(input, function (language) {
  20. if (language.type === 'static') {
  21. out.push(language);
  22. }
  23. });
  24.  
  25. return out;
  26. }
  27. });

大致这样使用:

<li ng-repeat="lang in languages | staticLanguage">{{lang.name}}</li>

过滤,带多个参数,做多件事

定义数字的显示单位和显示位置。

  1. var app = angular.module('filters', []);
  2.  
  3. app.controller('demo', function ($scope) {
  4. $scope.digit = 29.88;
  5. });
  6.  
  7. //过滤 做多件事 多个参赛
  8. app.filter('customCurrency', function () {
  9. return function (input, symbol, place) {
  10. if (isNaN(input)) {
  11. return input;
  12. } else {
  13. //检查symbol是否有实参
  14. var symbol = symbol || '¥';
  15. var place = place === undefined ? true : place;
  16.  
  17. if(place===true){
  18. return symbol+input;
  19. }else{
  20. return input + symbol;
  21. }
  22. }
  23. }
  24. });

大致这样使用:

  1. <p><strong>Original:</strong></p>
  2. <ul><li>{{digit}}</li></ul>
  3. <p><strong>Custom Currency Filter</strong></p>
  4. <ul>
  5. <li>{{digit | customCurrency}} --Default</li>
  6. <li>{{digit | customCurrency:'元'}} --custom symbol</li>
  7. <li>{{digit | customCurrency:'元':false}} -- custom symbol and custom location</li>
  8. </ul>

AngularJS中自定义过滤器的更多相关文章

  1. 关于angularjs 中自定义过滤器

    包子认为,在angularjs中,经常需要用到自定义过滤器,来过滤相应的功能,自定义过滤器非常的简单,我就直接贴代码啦 其中input就是你需要进行操作的对象,,,用法就直接就是 是不是很easy.. ...

  2. .net中自定义过滤器对Response内容进行处理

    原文:http://www.cnblogs.com/zgqys1980/archive/2008/09/02/1281895.html 代码DEMO:http://files.cnblogs.com/ ...

  3. AngularJS中自定义有关一个表格的Directive

    本篇体验在AngularJS中自定义一个有关表格的Directive.表格的需求包括: ● 表格结构 <table>    <thead>        <tr>  ...

  4. Django中自定义过滤器的使用

    我在这里做的是: 从数据库查出id递增的一些信息,展示在前台. 编写一个过滤器判断查出数据的id是偶数的返回True 奇数返回False 1 创建项目,创建应用,注册应用,配置settings.py文 ...

  5. flask中自定义过滤器

    第一种方法: 1,第一步:自定义过滤器函数 # 自定义一个函数,将list里面的数据进行排序 def list_sort(list) return list.sort() 2.第二步:注册过滤器 第一 ...

  6. Flask的jinja2模板中自定义过滤器的使用

    大部分的模板引擎都是支持过滤器功能的,jinja2也不例外,它提供了丰富的内置过滤器,但是有些时候还是没办法满足我们的需求,好在jinja2支持自定义过滤器,下面是一个简单的例子. 下面的例子完成了自 ...

  7. AngularJS中的过滤器

    欢迎大家指导与讨论 : ) 一.前言 AngularJS的过滤器能够将数据在被指令处理到显示在视图之前进行处理和转换.而且,过滤器不会修改作用域中的数据本身,即过滤器会保证数据的完整性.这样子能够允许 ...

  8. angularJS中自定义指令

    学习了angularJS一周,但是大部分时间被自定义指令占用了.博主表示自学互联网好心塞的,发现问题的视觉很狭窄,这比解决问题要更难.这篇文章首先介绍了自定义,然后介绍了在使用自定义指令遇到的问题. ...

  9. angularJs中自定义directive的数据交互

    首先放官方文档地址:https://docs.angularjs.org/guide/directive 就我对directive的粗浅理解,它一般用于独立Dom元素的封装,应用场合为控件重用和逻辑模 ...

随机推荐

  1. springcloud常见问题处理

    无法在任何已知服务器上执行请求. 原因是注册中心未启动.在使用springcloud搭建微服务时,一定要先启动注册中心,再启动服务端和客户端.具体报错如下: com.netflix.discovery ...

  2. Gentoo rc-update service ‘net.eth0′ does not exist

    最近迷上了Gentoo,并相信以后也会把更多的精力放在Gentoo上,不过Gentoo的安装的过程的确让很多人却步. 本文只提到添加net.eth0到默认的运行级别时一个很小的报错解决. # nano ...

  3. python抓取内涵段子文章

    # coding:utf-8 from urllib.request import urlretrieve import threading import requests from bs4 impo ...

  4. 解决华为手机无法输出Debug级别log的问题

    近期购入了新款的华为手机荣耀8,手感.性能.颜值都非常好.作为android开发工程师,自然会用到真机进行日常的调试.然而,这部手机并没有这么“听话“!反复尝试开启开发者选项中的设置项,依旧无法输出L ...

  5. ecplise里的run as里只有run configurations是怎么回事?

    一.没有main方法 二.main方法所在的类不是在与文件名同名的类中

  6. express中间件代理实现跨域

    前端代码 var xhr = new XMLHttpRequest(); xhr.open('post', 'http://localhost:3000', true); xhr.onreadysta ...

  7. vmware提示:此虚拟机似乎正在使用中,无法取得所有权的解决办法

    在虚拟机运行时,一次非正常关机.导致虚拟机出现以下错误: 此虚拟机似乎正在使用中. 如果此虚拟机已在使用中,请按“取消”按钮,以免损坏它.如果此虚拟机未使用,请按“取得所有权(&T)”按钮以获 ...

  8. Java 8 lambda表达式示例

    例1.用lambda表达式实现Runnable 我开始使用Java 8时,首先做的就是使用lambda表达式替换匿名类,而实现Runnable接口是匿名类的最好示例.看一下Java 8之前的runna ...

  9. Spring Cloud与Docker微服务架构实战 PDF

    电子版百度云下载 链接: https://pan.baidu.com/s/115u011CJ8MZzJx_NqutyTQ 提取码: 关注公众号[GitHubCN]回复2019获取 本书的代码 共计70 ...

  10. webstorm减少内存占用

    首先,按照我说的设置之后要重启才行. 在项目里找到不需要监听的文件夹右键:Mark Directory As => Cancel Exclusion 然后重启,嘿嘿,成功了!