Angular $ filter фильтрует отрицательные числа, хотя фильтр является положительным числом - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть простой фильтр для массива.Каждый элемент в массиве имеет атрибут «Рейтинг», который является числом.Значения могут быть -3, -2, -1,1,2,3.

Если я делаю

$scope.ratingFilter = -3; // negative numbers work fine

НО, если я делаю

$scope.ratingFilter = 3; // positive numbers are showing items that have a Rating of 3 AND -3. Why are negative number appearing in the filter???

$scope.updateMarkers = function(){

    var filters = [];
    if($scope.ratingFilter != 'all'){
        filters.Rating = $scope.ratingFilter;
    }

    var arr = [];
    angular.forEach($scope.allMarkers, function(value, key){
        arr.push(value);
    });

    $scope.markers = $filter('filter')(arr, filters);
}

Ответы [ 3 ]

0 голосов
/ 13 ноября 2018

Установите для «строгого» значения значение true в $filter.

$filter('filter')(arr, filters, true);

см. https://docs.angularjs.org/api/ng/filter/filter

0 голосов
/ 13 ноября 2018

$ scope.dsset = $ filter ('filter') ($ scope.array, {id: 1});

0 голосов
/ 13 ноября 2018

Рассмотрите возможность фильтрации массива в контроллере с помощью простого JavaScript:

$scope.markers = arr.filter(x => x.Rating === ratingFilter);
...