我有一个像这样的过滤器:
<tr ng-repeat="c in CategoryList | filter: {CategoryOption.CategoryOptionID: FilterByType}">
值:FilterByType从未显示的下拉列表中设置。
这样可以正常工作,例如,如果FilterByType值为2,那么它将过滤结果以显示2,22,32,42等。这不是真正的数字比较。它更像是一个string.contains有点事。
知道如何锁定它吗?
答案 0 :(得分:3)
将true
作为第三个参数添加到过滤器表达式中以启用严格比较:
<tr ng-repeat="c in CategoryList | filter: {CategoryOption.CategoryOptionID: FilterByType}:true">
注意:这需要AngularJS v1.1.3 +
答案 1 :(得分:2)
您可以使用带过滤器的函数,如下所示:
<tr ng-repeat="c in CategoryList | filter: myCustomFilter">
然后定义一个可以进行任何比较的函数:
$scope.myCustomFilter = function(element) {
if ($scope.FilterByType) {
return element.number === parseInt($scope.FilterByType);
}
return true;
}
这提供了对过滤器的完全控制,并且还有助于防止一些奇怪的行为,输入类型(文本,数字等)与模型中的实际类型不匹配。
答案 2 :(得分:0)
添加:true
为我工作。
ng-repeat="proj in projectList | filter: {ID: project.p_id} :true"
由于