我有以下搜索输入:
<input type="text" ng-model="search.Kkz">
我有以下ng-repeat:
<tr class="ListItem" ng-class-odd="'Odd'" ng-class-even="'Even'"
ng-repeat="item in Prios | filter:search | filterMultiple:{Sprache:spracheSelectedItem} | orderBy:predicate:reverse | startFrom:currentPage*pageSize | limitTo:pageSize"
ng-click="setSelectedRow(item)" ng-class="{'Selected': item == selectedRow}">
目前Kkz字段可以有2个值(3000和0)。当我搜索数字3000时,它返回一个正确的列表。但是当我搜索价值&#34; 0&#34;没有任何反应,好像它在我正在搜索的表格列中找不到该值。
答案 0 :(得分:1)
默认情况下,过滤器会查找不区分大小写的子字符串匹配项。在这里它找到3000在3000以内,所以3000和0匹配。
对于简单的字符串数组,您可以使用filter:search:true
,在这种情况下,搜索是一个对象,创建自己的比较器可以提供帮助:
在HTML中添加比较功能的名称:
... | filter:search:compare | ...
在控制器中:
$scope.compare = function (actual, expected) {
// !expected: All records pass when no search value is specified.
// == instead of ===: Coerce the numbers from the array into strings to
// properly compare to the string from the input.
return (!expected || actual == expected);
};
答案 1 :(得分:0)
当你说什么都没发生时。你到底什么意思?你仍然得到相同的结果或没有结果吗?
是不是因为当你用过滤器搜索0时它也匹配3000?
示例:
<!doctype html>
<html lang="en">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.0-beta.6/angular.min.js"></script>
</head>
<body ng-app="">
<div ng-init="values = [0,555,3000]"></div>
Search: <input ng-model="searchText">
<ul ng-repeat="value in values | filter:searchText">
<li>{{value}}</li>
</li>
</table>
</body>
</html>
请参阅http://plnkr.co/edit/CEt6XKP5ylQtXc2hhsx4?p=preview了解相关工作示例。
如果不是这种情况,请发布更多代码。