源文地址:http://www.ncloud.hk/技术分享/angularjs中的filter-过滤器/javascript
filters能够用来格式化数据。例如把时间格式化成为yyyy-MM-dd的形式来呈现给用户,方便查看。angularjs内置了一些filters,咱们也能够根据本身的须要自定义一些filters.html
下面是angularjs提供的filters:java
currency:格式化一个数字成为一种货币。当没有提供任何货币符号时,使用当前区域的默认符号。git
number:格式化数字成为文本angularjs
filter:从数组中选择一个子集,并将其返回为一个新数组express
date:基于要求的格式格式化日期为字符串json
json:容许你将一个javascript对象转化为JSON字符串数组
lowercase:转换字符串成为小写app
uppercase:转换字符串成为大写spa
limitTo:将数组/字符串限定为一个指定的元素/字符数。
orderBy:经过给定的表达式指定数组,它是按字母顺序排列的字符串和数值。
用法介绍:
html中用法:
filter能够用管道符 | 添加到表达式:{{expression | filter}}
也能够多个filter连用,上一个filter的输出做为下一个filter的输出:
{{expression | filter1 | filter2 |……}}
还能够在指令中用参数:
例如: <li ng-repeat=“x in names | orderBy:’country’”>
或<li ng-repeat=“x in names | filter : ‘i’>
javascript中用法:
例:$scope.formatDate = $filter('date')(today, 'yyyy-MM-dd');
有时候angularjs内置的filter不够用,咱们就能够本身定义一个过滤器。
例如定义一个名为“myFormat”的过滤器,
<ul ng-app="myApp"ng-controller="namesCtrl">
<li ng-repeat="x in names">
{{x | myFormat}}
</li>
</ul>
<script>
var app = angular.module('myApp', []);
app.filter('myFormat', function() {
returnfunction(x) {
var i, c, txt = "";
x = x.split("")
for (i = 0; i < x.length; i++) {
c = x[i];
if (i % 2 == 0) {
c = c.toUpperCase();
}
txt += c;
}
return txt;
};
});
app.controller('namesCtrl', function($scope) {
$scope.names = ['Jani', 'Carl', 'Margareth', 'Hege', 'Joe', 'Gustav', 'Birgit','Mary', 'Kai'];
});
</script>
这个myFormat过滤器将会格式化其它奇数位的字符为大写。