Syl*_*Syl 12 angularjs angularjs-ng-repeat angularjs-filter
我有一个带有多个过滤器的表单,但对于某些人来说,我需要严格的比较.
tl; dr:严格比较,user_id不是为了firstname.
<select ng-model="search.user_id">
<option value="1">1</option>
<option value="2">2</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="23">23</option>
</select>
<input type="text" ng-model="search.firstname">
<ul>
<li ng-repeat="user in users | filter:search">#{{ user.user_id }} {{ user.firstname}}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我尝试了第三个参数,true但它也适用于firstname过滤器.
问题是:如果您选择该值2,2将过滤其ID中包含a的所有用户,我不希望出现此行为.
这是小提琴.
har*_*shr 15
我本来试图修复它,而不是自定义过滤器,它的工作,这里是PLUNKER LINK
必须指定多个过滤器标签
<li ng-repeat="user in users | filter:{'user_id': search.user_id}: true | filter: {'firstname' : search.firstname}">
Run Code Online (Sandbox Code Playgroud)
虽然有几点需要注意:
我不得不将类型从数字改为字符串......
如果我重置完全匹配的值它不起作用...
所以我不得不写一个自定义文件管理器,它适用于完全匹配并忽略空/空值
$scope.filter2 = function(field1, field2) {
if(field2 === "" || field2 === null) return true;
return field1 === field2;
};
Run Code Online (Sandbox Code Playgroud)
你会在提供的plunker链接中找到它们