在Angular中,过滤器的功能主要是格式化数据表达式,且可以自定义过滤器。作用域(scope)主要服务于页面模板,在控制器和页面中起桥梁作用,保存模板中的数据对象,为模板中的元素提供方法和属性。

一、过滤器的表现形式

在angular中有三种变现形式,通过管道字符 “  |  ”,与需要处理的代码进行连接,看代码:

1、单个过滤器,如:{{表达式 | 过滤器名}}

货币过滤器     {{8.88 | currency}}  // $8.88

2、多个过滤器,如:{{表达式 | 过滤器名1 | 过滤器名2 | ...}}

{{8.88 | currency | filter | ...}}

3、带参数过滤器,如:{{表达式 | 过滤器名1 : 参数1 : 参数2 : ...}}

{{8.88 | number : 1}}

二、angular中自带的九种过滤器

1、currency格式化数字为货币格式。

  {{  8.88 | currency  }}//  默认为$8.88

  {{  8.88 | currency  : "¥"}} // ¥8.88

2、lowercase过滤器将字符串格式化为小写

 姓名为{{ lastName | lowercase }} // zhang    $scope.lastName="ZHANG"

3、uppercase过滤器将字符串格式化为大写

{{ lastName | uppercase }} // ZHANG    $scope.lastName="zhang"

4、orderBy过滤器根据表达式排列数组

 // 根据id降序排序

 {{[{"age":20,"id":10,"name":"iphone"},

 {"age":12,"id":11,"name":"sunm xing"},

 {"age":44,"id":12,"name":"test abc"}]

 |   orderBy:'id':true}}

 // 根据id升序排序

 {{[{"age":20,"id":10,"name":"iphone"},

 {"age":12,"id":11,"name":"sunm xing"},

 {"age":44,"id":12,"name":"test abc"}]

 |   orderBy:'id'}}

5、filter查找

 // 查找name为iphone的行

 {{[{"age":20,"id":10,"name":"iphone"},

 {"age":12,"id":11,"name":"sunm xing"},

 {"age":44,"id":12,"name":"test abc"}]

 |filter:{'name':'iphone'}}}//输出的话就是{"age":20,"id":10,"name":"iphone"}

6、limitTo 截取

 {{"1234567890"|limitTo:6}}// 从前面开始截取6位

 {{"1234567890"|limitTo:-4}}// 从后面开始截取4位

7、date 时间格式化

 {{1490161945000 | date:"yyyy-MM-dd HH:mm:ss" }}// 2017-03-22 13:52:25

8、number 格式化(保留小数)

 {{149016.1945000|number:2}}   //149016.19

9、 json   (格式化json对象)

json过滤器可以把一个js对象格式化为json字符串,没有参数。这东西有什么用呢,我一般也不会在页面上输出一个json串啊,官网说它 可以用来进行调试,嗯,是个不错的选择。或者,也可以用在js中使用,作用就和我们熟悉的JSON.stringify()一样。用法超级简单:

 {{ jsonTest | json}}

三、angular自定义过滤器

方法:

 app.filter('name', function() {

         return function(input, char) {

              return  自定义你的过滤器

       }

 }
 app.filter('capitalize', function() {

       //input 需要过滤的元素

       //char位置,索引减一

        return function(input, char) {

          if(isNaN(input)) {

                   //如果序号位置没有设置,索引位置默认是0

                    var char = char - 1 || 0;

                    //把过滤元素索引位置上的字母转换成大写

                    var letter = input.charAt(char).toUpperCase();

                    var out = [];

                    for(var i = 0; i < input.length; i++) {

                       if(i == char) {

                            out.push(letter);

                       } else {

                               out.push(input[i]);

                         }

                    }

                         return out.join('');

                       } else {

                            return input;

                         }

                   }

 });

第219天:Angular---过滤器的更多相关文章

  1. Angular过滤器

    angular中的过滤器有: currency 过滤货币 number  过滤数字, date  过滤日期 json 把js对象过滤为json字符串 limitTo  截取字符串,参数是正数则从左往右 ...

  2. Angular过滤器 自定义及使用方法

    首先设置自定义过滤器. 定义模块名:angular .module('myApp') .filter('filterName',function(){ return function(要过滤的对象,参 ...

  3. angular过滤器基本用法

    1.过滤器主要用于数据的筛选,可以直接在模板使用 语法: {{expression | filter}} {{expression | filter | filter2}} {{expression ...

  4. Angular 过滤器的简单使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. angular过滤器使用 自定义过滤器

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...

  6. 如何angular过滤器进行排序???

    首先定义一个json文件: 然后写HTML文件: <div id="box"> <!--第一个下拉框--> <select ng-model=&quo ...

  7. angular 过滤器(日期转换,时间转换,数据转换等)

    (function() { 'use strict'; /** * myApp Module * * Description */ angular.module('myApp') .filter('i ...

  8. Angular 过滤器

    <!DOCTYPE html><html ng-app="myApp"><head lang="en"> <meta ...

  9. 简话Angular 04 Angular过滤器详解

    一句话: filter是万能的数据处理器,可以过滤数据,排序数据,删除数据,扩展数据 1. 内置filter大全 url: https://docs.angularjs.org/api/ng/filt ...

  10. angular过滤器在html和js中的使用

    在HTML中使用格式为:{{数据 | 过滤器名称:条件一:条件二--}}:过滤条件间使用:隔开 例如: 在代码中一般格式为:  变量 = $filter("过滤器名称")(被过滤数 ...

随机推荐

  1. Python爬虫之HTTP和HTTPS

    一:HTTP和HTTPS HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法,以明文的形式传输,效率高,但是不安全 HTTPS ...

  2. SQL Server 内存和换页(Paging)

    在进程开始执行时,进程首先申请虚拟地址空间VAS(Virtural Address Space),VAS是进程能够访问的地址空间,由于VAS不是真正的物理内存空间,操作系统必须将VAS隐射到物理内存空 ...

  3. 如何在ajax请求中设置特殊的RequestHeader

    现在ajax应用已经相当广泛了,有很多不错的ajax框架可供使用.ajax是一个异步请求,也主要是一种客户端的脚本行为.那么,如何在请求之前为请求添加特殊的一些头部信息呢? 下面是一个简单的例子,我用 ...

  4. 利用for循环如何判定是水仙花数

    水仙花数业内的大家可能听说过,但是对于初学者来讲,对于水仙花数还是比较陌生的. 首先要知道的是水仙花数的计算公式:153=1**3+5**3+3**3: 如何去判定这个数是否为水仙花数,最好的办法就是 ...

  5. 六边形地图Cube coordinates理解

    1.这个是 Axial coordinates,可以实现六边形4个方向上的移动 2.但是六边形还有两个方向需要移动,所以引入了Cube coordinates,这个坐标系多了一个轴向,Y轴,X轴沿水平 ...

  6. Intellij IDEA创建maven项目无java文件问题

    在idea开发工具中创建工程时,点击右键没有创建包.接口.java类的提示, 如图: 解决之前的项目目录为: 针对这种情况,对idea开发工具做以下设置. 选择File->Project Str ...

  7. 关于MySql数据库主键及索引的区别

    一.什么是索引?索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录.表里 ...

  8. Docker 入门之docker容器创建

    使用docker容器的大多数人都是因为想要隔离不同运行环境的差异,使得自己的应用能更好的移植和部署.那么我们来看看掌握docker需要掌握哪些方面. 1,搭建docker环境 2,编译镜像并将其运行成 ...

  9. 使用spring整合Quartz实现—定时器

    使用spring整合Quartz实现—定时器(Maven项目做演示) 不基于特定的基类的方法 一,开发环境以及依赖的jar包 Spring 4.2.6.RELEASE Maven 3.3.9 Jdk ...

  10. IPC_Binder_java_2

    title: IPC_Binder_java_2 date: 2017-07-04 14:47:55 tags: [IPC,Binder] categories: [Mobile,Android] - ...