AngularJS学习笔记filter

filter是对数据进行过滤操作,比如按某个字段搜索、格式化数据等等,是一个非常有用的接口。下面就简单介绍下它的用法。

AngularJS自带的filter接口,|是filter的分隔符,参数用:分隔;

currency,格式化number,货币化,默认是转化成美元  param(number,symbol),返回值将会把数字每3位加一个逗号

<input type="number" ng-model="amount"/>



<p>默认美元:{{amount|currency}}</p>



<p>人民币:{{amount|currency:'¥'}}</p>



<p>空:{{amount|currency:''}}</p>

结果:

AngularJS学习笔记filter

date       :格式化时间,param(date|Date,number,string,format)
filter       :过滤array,param(string|object|function,第二参数不明白)
json        :将一个object转换成json形式的字符串
limitTo   :限制string或array的长度,参数如果是正数(positive)则从beginning开始,如果是负数(negative)则从end开始
lowercase:小写
uppercase:大写
number :保留小数点个数,默认是3位,返回值将会把数字每3位加一个逗号
orderBy:对数组进行排序,param(string|function|array,reverse);
 
自定义filter
基本用法如下例:
var moduleName = angular.module('moduleName', []);

//对字符串的过滤

moduleName.filter('filterName', function() {

    return function(data) {

        //do something to change the data value,but dont change the data type.

        return data;

    }

})

//对array的过滤

moduleName.filter('plus15', function() {

    return function(orginalArr) {

        var arr = [];

        angular.foEach(function(value, key) {

            if (value >= 15) {

                arr.push(value);

            }

        })

        return arr;

    }

})

html使用:

<ul ng-repeat="value in historyData | plus15">

    <li>{{value.day|filterName}}:{{value.temp}}</li>

</ul>

 

你可能感兴趣的:(AngularJS)