angular过滤器基本用法
2017-07-22 15:31
387 查看
1.过滤器主要用于数据的筛选,可以直接在模板使用
语法:
{{expression | filter}}
{{expression | filter | filter2}}
{{expression | filter : param....}}
例子:
demo3.html
demo3.js
效果图
2.自定义过滤器
自定义过滤器有两种方法:推荐用第二种
1. $filterProvider.register()
2.module.filter(name,filterFactory)
第一种方式:$filterProvider.register()
例子
demo4.html
demo4.js
第二种方式:angular.module().filter()
语法:
{{expression | filter}}
{{expression | filter | filter2}}
{{expression | filter : param....}}
例子:
demo3.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div ng-app="myApp"> <div ng-controller="myController"> <p>{{1234567 | number}}</p> <p>{{1234567 | number : 3}}</p> <p>{{1234567 | currency}}</p> <p>{{date | date : 'yyyy-MM-dd HH:mm:ss'}}</p> <p>{{[1,2,3,4,5,6] | limitTo:5}}</p> <p>{{'AbCdefG' | lowercase}}</p> <p>{{'AbCdefG' | uppercase}}</p> <p>{{city | filter : '上海'}}</p> <p>{{city | filter : {address:'h'} }}</p> <p>{{city | orderBy : 'address' }}</p> <p>{{city | orderBy : '-address' }}</p> <p>{{city | filter : checkName }}</p> </div> </div> <script type="text/javascript" src="../common/angular/angularjs.js"></script> <script type="text/javascript" src="demo3.js"></script> </body> </html>
demo3.js
/** * Created by Administrator on 2017/7/22. */ angular.module('myApp', []) .factory('myData', function () { return { message: 'wddsad', city: [ { name: '张三', address: '上海' }, { name: '李四', address: 'shenzhen' } ] }; }) .controller('myController', function ($scope, myData,$filter) { $scope.date = new Date(); $scope.city = myData.city; $scope.data = myData; //过滤器 var a = $filter('number')(3000); // console.log(a); var b = $filter('json')($scope.data); // console.log(b); $scope.checkName = function(obj){ if(obj.name.indexOf('张') === -1){ return false; } return true; } })
效果图
2.自定义过滤器
自定义过滤器有两种方法:推荐用第二种
1. $filterProvider.register()
2.module.filter(name,filterFactory)
第一种方式:$filterProvider.register()
例子
demo4.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div ng-app="myApp"> <div ng-controller="myController"> <ul> <!-- ng-repeat 循环数据,通过 | 调用自定义过滤器 filterAge --> <li ng-repeat="d in data | filterAge"> {{d.name}} {{d.age}} {{d.address}} </li> </ul> </div> </div> <script type="text/javascript" src="../common/angular/angularjs.js"></script> <script type="text/javascript" src="demo4.js"></script> </body> </html>
demo4.js
/** * Created by Administrator on 2017/7/22. */ /** * 第三个参数的 function 注入了三个服务 $filterProvider, $provider, $controllerProvider * 注入 $filterProvider 用 $filterProvider.register() 方法自定义过滤器 * 注入 $provider 主要是要用到 service ,数据通过 service 初始化,service是 $provider 提供的 * 注入 $controllerProvider 主要是要用到 controller ,controller是 $controllerProvider 提供的 * 其实注入 service,controller都可以通过 moudle 简便方式注入,这里只是提供另外一种写法,一般写法如: * angular.moudle('myApp',[]) * .service() * .controller() * ...... */ angular.module('myApp', [], function ($filterProvider, $provide, $controllerProvider) { // 注册 service(注册service时,里面的function返回必须是对象,也就是返回引用类型,不能是字符串或者数字,不然会报错) $provide.service('myData', function () { return [ { name: '张三', age: 18, address: '北京' }, { name: '李四', age: 25, address: '深圳' } ]; }); //注册自定义过滤器 $filterProvider.register('filterAge', function () { //这里必须要返回一个function return function (obj) { var result = []; angular.forEach(obj, function (o) { if (o.age > 20) { result.push(o); } }) return result; } }); //注册 controller $controllerProvider.register('myController', function ($scope, myData) { console.log(myData); $scope.data = myData; }); })
第二种方式:angular.module().filter()
angular.module('myApp', [], function ($filterProvider, $provide, $controllerProvider) { // 注册 service $provide.service('myData', function () { return [ { name: '张三', age: 18, address: '北京' }, { name: '李四', age: 25, address: '深圳' } ]; }); //注册自定义过滤器(年龄) $filterProvider.register('filterAge', function () { //这里必须要返回一个function return function (obj) { var result = []; angular.forEach(obj, function (o) { if (o.age > 20) { result.push(o); } }) return result; } }); //注册 controller $controllerProvider.register('myController', function ($scope, myData) { console.log(myData); $scope.data = myData; }); }) //自定义过滤器(城市)(主要就是这里的写法不同,在外层写 filter,思路都一样) .filter('filterAddress',function () { //返回一个function return function (obj) { var result = []; angular.forEach(obj, function (o) { if (o.address === '北京') { result.push(o); } }) return result; } })
相关文章推荐
- angular基本概念和用法(1)
- vue 过滤器基本用法
- angular之$location基本用法
- Angular.js基本概念和用法--(一MVC2)
- angular 过滤器的经典用法(排序,搜素)
- jQuery中过滤器的基本用法示例
- Angular.js基本概念和用法--(一路由、模块、依赖注入)
- Angular.js基本概念和用法--(一双向数据绑定)
- Vue 过滤器filters及基本用法
- 批量改名及FilenameFilter文件过滤器基本用法
- angular之$location基本用法
- Angular.js基本概念和用法--(一MVC1)
- AangularJs表单基本用法例子
- Android ActionBar的基本用法(转自bigconvience)
- 解析MySQL中mysqldump工具的基本用法
- 深入理解 Laravel Eloquent(一)——基本概念及用法
- linux下c编程起步学习:掌握gcc基本用法
- matlab的基本用法
- GCC基本用法
- redux 及 react-redux基本用法及源码解析