欢迎您访问我爱IT技术网,今天小编为你分享的javascript教程:【Angularjs中如何使用filterFilter函数过滤】,下面是详细的讲解!
Angularjs中如何使用filterFilter函数过滤
AngularJS的filter,中文名“过滤器”是用来过滤变量的值,或者格式化输出,得到自己所期望的结果或格式的东东。AngularJS中有一个filterFilter函数用来对集合过滤,非常方便。
源代码大致如下:
function filterFilter(){
return function(aray, expression comparator){
if(!isArray(array)) return array;
var comparatorType=typeof(comparator),
predicates=[],
evaluatedObjects=[];
predicates.check=function(value){
for(var j=0; j < predicates.length; jii){
if(!predicates[j](value){
return false;
})
}
return true;
}
if(comparatorType !='function'{
if(comparatorType==='boolean' && comparator){
comparator=function(obj, text){
return angular.equals(obj, text);
}
} else {
comparator=function(obj, text){
...
}
}
})
}
}
controller部分如下:
angular
.module('app')
.controller('MainCtrl', ['$scope',
function($scope) {
$scope.users=$scope.users=[
{name: '', email: '', joined: 2015-1-1}
];
$scope.filter={
fuzzy: '',
name: ''
};
...
}]);
搜索所有任意字段
<input type="text" ng-model="filter.any" >
<tr ng-repeat="user in users | filter: filter.any">
<td>{{user.name}}</td>
<td>{{user.email}}</td>
<td>{{user.joined | date}}</td>
</tr>
搜索某个字段
<input type="text" ng-model="filter.name">
<tr ng-repeat="user in users
| filter: filter.any
| filter: {name: filter.name}">
<td>{{user.name}}</td>
<td>{{user.email}}</td>
<td>{{user.joined | date}}</td>
</tr>
如果想name字段完全匹配:
<tr ng-repeat="user in users
| filter: filter.any
| filter: {name: filter.name}:true">
<td>{{user.name}}</td>
<td>{{user.email}}</td>
<td>{{user.joined | date}}</td>
</tr>
搜索时间段
contrlller部分修改为:
angular
.module('app')
.controller('MainCtrl', ['$scope',
function($scope) {
$scope.users=$scope.users=[
{name: '', email: '', joined: 2015-1-1}
];
$scope.filter={
fuzzy: '',
name: ''
};
$scope.minDate=new Date('January 1, 2000');
$scope.maxDate=new Date();
$scope.min=function(actual, expected) {
return actual >=expected;
};
$scope.max=function(actual, expected) {
return actual <=expected;
};
}]);
页面部分为:
<input type="text" ng-model="fromDate" data-min-date="{{minDate}}">
<input type="text" ng-model="untilDate" data-max-date="{{maxDate}}">
<tr ng-repeat="user in users
| filter: filter.any
| filter: {name: filter.name}
| filter: {joined: untilDate}:max
| filter: {joined: beforeDate}:min">
<td>{{user.name}}</td>
<td>{{user.email}}</td>
<td>{{user.joined | date}}</td>
</tr>
以上所述是小编给大家分享的Angularjs中如何使用filterFilter函数过滤的相关知识,希望对大家有所帮助。
关于Angularjs中如何使用filterFilter函数过滤的用户互动如下:
相关问题:在js中用angularjs的filter写一个方法。
答:node xxx.js就行了呗 >>详细
相关问题:如何正确运用PHP filter判断过滤数据
答:PHP 5.2以及更高的版本,PHP filter被绑定于系统,它可以对数据进行自动的过滤和判断。第一种、PHP filter判断一个变量的内容是否符合要求使用函数filter_var,第一个参数是要判断的变量。第二个参数是判断的要求,FILTER_VALIDATE_EMAIL表示判... >>详细
相关问题:angularjs内置过滤器filter能不能获取过滤后的数据
答:AngularJS的内置过滤器使用方法: 一个过滤器,不带参数的情况 {{expression | filter}} 一个过滤器,带参数的情况 {{expression | filter:arguments}} 一个过滤器,带多个参数的情况 {{expression | filter: arg1: arg2: ...}} 多个过滤器,不带... >>详细
- 【firefox】firefox浏览器不支持innerText的解决
- 【Extjs】Extjs学习过程中新手容易碰到的低级错误
- 【clearInterval】js clearInterval()方法的定义
- 【ComboBox】ComboBox 和 DateField 在IE下消失的
- 【dom】javascript dom追加内容实现示例-追加内容
- 【checkbox】让checkbox不选中即将选中的checkbox
- 【Array】js中更短的 Array 类型转换-类型转换
- 【append】append和appendTo的区别以及appendChil
- 【ExtJs】ExtJs 表单提交登陆实现代码-表单提交-
- 【ajax清除浏览器缓存】Ajax清除浏览器js、css、
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
