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>

结果:

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>

 

posted @ 2014-07-16 16:08  Emma.  阅读(686)  评论(0编辑  收藏  举报