在使用ng框架做项目的时候,我们可能会使用到ng自带的过滤器,来进行数据的筛选

一:ng自带的过滤器:currency ,date,limitTo,lowercase,uppercase,number,orderBy ,json,filter

过滤器有两种使用方法:第一种,页面是直接使用;第二种,js中使用

以上的过滤器的使用时偏简单的,查看文档对你很有用

这里,我们来讲解一下 上面的简单中的很少用到的json,filter

关于json过滤器的作用是将一个javaScript对象转化为一个JSON字符串:

 demo: 

  <div>
{{ {name: 'Ari', City: 'SanFrancisco'} | json }}
</div>

页面显示的效果是:{ "name": "Ari", "City": "SanFrancisco" }

关于filter过滤器的用法:

页面中直接使用

 <div>
{{ ["aaassddd","bbbdddeee","kkklljj"] | filter:"!e" }}
</div>

页面显示的效果是:["aaassddd","kkklljj"]

举一个在js中使用的demo吧

<!doctype html>
<html lang="en" ng-app="myApp">
<head>
<script src="angular.js"></script>
</head>
<body>
<div ng-controller="filterCtrl">
{{name}}
{{dollar}}
{{ ['Ari','Lerner','Likes','To','Eat','Pizza'] | filter:'e' }}
{{ {name: 'Ari', City: 'SanFrancisco'} | json }}
{{ ["aaassddd","bbbdddeee","kkklljj"] | filter:"!e" }}
</div>
</body>
</html>
<script>
angular.module("myApp",[])
.controller("filterCtrl",["$scope","$filter","currencyFilter",function(s,f,c){//方式一:直接使用$filter, 方式二:使用***Filter
s.name=f('lowercase')("ARTDF");
s.dollar=c(234);
}])
</script>

二:讲解了ng的内置过滤器,我们来 学学如何自定义过滤器

    ng的自定义过滤器返回的是一个函数,我们可以在这个函数里进行系列操作

   js:

 var myFilter=angular.module("filterModule",[])
.filter("filter1",function(){
return function(item){
return item+'ABCDE';
}
});

html:

<div>{{432432423432| date:"yyyy-MM-dd"|filter1}}</div>

结果:1983-09-15ABCDE

demo2:自定义过滤器(直接上例子)

<!doctype html>
<html lang="en" ng-app="myApp">
<head>
<script src="lodash.js"></script>
<script src="angular.js"></script>
</head>
<body ng-controller="myCtrl">
<div ng-repeat="t in list | filterByObj:arr">{{t}}</div>
</body>
</html>
<script>
var app=angular
.module("myApp",[])
.controller("myCtrl",function($scope){
$scope.list=[1,3,4,5,12,23,6];
$scope.arr=[6,5,3,1];
})
.filter("filterByObj",[function(){
return function(list,obj){
var result=[];
angular.forEach(list,function(item){
var isEqual=true;
for(var e in obj){
if(item==obj[e]){
result.push(item);
}
}
});
return result;
}
}]);
</script>

结果:1,3,5,6

借鉴资源链接:http://www.oschina.net/translate/angularjs-filter-creating-custom-filter

最新文章

  1. bug:[NSKeyedUnarchiver initForReadingWithData:]: data is NULL
  2. Asp.net MVC 视图(三)
  3. 【暑假】[深入动态规划]UVAlive 4794 Sharing Chocolate
  4. PHP 关于 $GLOBALS[&#39;HTTP_RAW_POST_DATA&#39;]
  5. C++用new创建对象和不用new创建对象的区别解析
  6. JS设计模式---缓存代理
  7. 第3阶段——内核启动分析之make uImage编译内核(3)
  8. scope_lock与lock_guard区别
  9. python 判断变量是否是 None 的三种写法
  10. client.go
  11. aop (权限控制之功能权限)
  12. vue单位文本控件与vue加密文本控件
  13. HQL实用技术
  14. 20175312 2018-2019-2 《Java程序设计》第1周学习总结
  15. 【转】借助System.Linq.Dynamic, IQueryable根据排序字符串排序
  16. maven-assembly-plugin
  17. 调用百度api输出地址和城市查询出具体坐标系
  18. 批量执行命令:fabric
  19. Linux下objdump查看C程序编译后的汇编代码
  20. crontab中运行python程序出错,提示ImportError: No module named解决全过程

热门文章

  1. 51NOD-1960-数学/贪心
  2. wordcount程序出现map 100% reduce 0%问题的解决方法
  3. ansible来了
  4. 重温HTML
  5. LeetCode OJ:N-Queens(N皇后问题)
  6. 20165202 预备作业3 Linux安装及学习
  7. JSP里的&lt;c:if&gt;不起作用[待解答]
  8. root用户下使用sqlplus登录Oracle数据库
  9. php-resque 简单的php消息队列
  10. 05-python中函数的使用