Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
忽略AngularJS筛选器中的空白下拉列表值_Angularjs_Angularjs Filter - Fatal编程技术网

忽略AngularJS筛选器中的空白下拉列表值

忽略AngularJS筛选器中的空白下拉列表值,angularjs,angularjs-filter,Angularjs,Angularjs Filter,我有一个用户数据列表,我正在添加“高级搜索”功能。高级搜索由许多下拉列表组成,允许用户过滤其结果,例如,将结果限制为特定部门的用户: <select ng-model="search.department_id" ng-options="department.id as department.name for department in departments"> <option value="">(Select from list)</option>

我有一个用户数据列表,我正在添加“高级搜索”功能。高级搜索由许多下拉列表组成,允许用户过滤其结果,例如,将结果限制为特定部门的用户:

<select ng-model="search.department_id" ng-options="department.id as department.name for department in departments">
    <option value="">(Select from list)</option>
</select>
并将
ng repeat
更改为:

ng-repeat="user in users | filter:search:ignoreNullComparator | orderBy:'name'
但是,尽管通过一些调试可以看到使用了自定义比较器,但它对结果没有任何影响


< P> >,如果选择空白选项,我如何得到过滤器来忽略DROPDENS?

< P>您的比较器中参数的顺序是错误的,比较器应该定义为<代码>函数(实际的,预期的)< /C> >:


我更新函数以处理字符串和数字搜索字段

$scope.ignoreNullComparator=函数(实际,预期){
如果(预期===null | |预期===''| |预期的类型===“未定义”){
返回true;
}如果(!isNaN(预期值))则为else{
expected2=parseInt(预期);
返回角度。等于(预期值2,实际值);
}else if(实际索引of(预期)=-1){
返回false;
}
返回true;
};

谢谢,成功了。我有一种感觉,那会很简单!
$scope.ignoreNullComparator = function(expected, actual){
    if (expected === null) {
        return true;
    } else {
        return angular.equals(expected, actual);
    }
};
ng-repeat="user in users | filter:search:ignoreNullComparator | orderBy:'name'
$scope.ignoreNullComparator = function(actual, expected){
    if (expected === null) {
        return true;
    } else {
        return angular.equals(expected, actual);
    }
};