tôi đã có thể để có được mã của bạn làm việc. Đây là một loại sửa chữa và một cách tiếp cận tốt hơn sẽ làm cho một bộ lọc (làm việc trên đó là tốt). Giả định rằng tôi đã thực hiện: -
By lọc Member Status có nghĩa là kiểm tra 'userStatus'
By lọc Trạng thái ADMIN nghĩa kiểm tra 'vai trò'
Check-out này Plnkr
tôi đang lọc dựa trên một đối tượng cập nhật dựa trên $ scope.filter.
Thay đổi sang HTML
<div ng-repeat="item in mylist | filter:filterModel">
Changes để JS
$scope.filterModel =
{
"userStatus":"",
"roles" : ""
}
$scope.$watch('filter', function() {
var myModel =
{
"userStatus":"",
"roles" : ""
}
if($scope.filter.administrator && $scope.filter.lead)
{
myModel.userStatus="";
}
else if($scope.filter.administrator)
{
myModel.userStatus="admin";
}
else if($scope.filter.lead)
{
myModel.userStatus="lead";
}
else
{
myModel.userStatus="";
}
if(angular.equals($scope.filter.selectedSearch,'Default'))
{
myModel.roles="";
}
else
{
myModel.roles=$scope.filter.selectedSearch;
}
$scope.filterModel=myModel;
},true);
CẬP NHẬT: lọc Mark dường như được làm việc một cách chính xác
Nguồn
2014-12-10 08:08:14
http://jsfiddle.net/vzndtnkp/2/ –
Một điều chắc chắn là trong mã của bạn, bạn có phạm vi $.filterByCategory = function (stat) lấy tham số có tên là stat. Bạn gọi hàm này trong bộ lọc của bạn mà không đưa ra bất kỳ tham số nào. Vì vậy, điều này ít nhất là phá vỡ bộ lọc của bạn. –
stat là đối tượng của danh sách –