我已在ng-repeat
中编写了此过滤器,这可以正常使用。
<tr ng-repeat="item in data | filter:{ Name:search, Country:country, MembershipType:membership} | filter: {Gender: gender}: true>
现在我需要一个按相同标准过滤的功能。我写了这个
$scope.getData = function () {
return $filter('filter')($scope.data, { Name: $scope.search, Country: $scope.country, MembershipType: $scope.membership, Gender: $scope.gender })
}
其他人工作正常,但此功能不会返回性别的完全匹配。
我应该在功能中做些什么?
答案 0 :(得分:2)
您可以使用第二个参数来使用完全匹配。就像你的html一样,你可以使用过滤器两次:
$scope.getData = function () {
var filter = $filter('filter');
// First filter the non-exact
var filtered = filter($scope.data, {
Name: $scope.search,
Country: $scope.country,
MembershipType: $scope.membership
});
// then the exact filters
var genderFiltered = filter(filtered, {
Gender: $scope.gender
}, true);
return genderFiltered;
}
答案 1 :(得分:0)
我也尝试过与@devqon一样的答案。但不能在这里发布重复的答案,所以我只是改变我的代码,如下所示。
你的ng-rpeate有两个过滤器,两次过滤数据。所以,你应该编写你的代码,如过滤方式的过滤器。
$scope.getData = function () {
return $filter('filter')(($filter('filter')($scope.data, { Name: $scope.search,
Country: $scope.country, MembershipType: $scope.membership }), {
Gender: $scope.gender
}, true);
}