【发布时间】:2018-11-12 23:11:44
【问题描述】:
我有一个简单的数组过滤器。数组中的每个项目都有一个“评级”属性,它是一个数字。值可以是 -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);
}
【问题讨论】:
-
不是字符串过滤器吗?
-
@FrankModica 嗯,我不确定你的意思。 arr 数组中的 Rating 属性是数字而不是字符串。我会检查 $scope.ratingFilter 是什么,但我确定它是一个数字。
-
我的意思是 AngularJS 提供的过滤器 - 它可能返回包含 3 的任何内容。尝试添加另一个包含 3 的数字,看看它是否也返回。
-
@FrankModica
console.log(angular.isString($scope.ratingFilter));返回 false 所以它是一个数字。 -
@FrankModica 好的...我刚刚做了 $scope.ratingFilter = 43;并且返回 0 结果,因此它不是部分匹配。奇怪的是 -1,-2,-3 都有效,你会认为如果它是任何带有 3 的数字,它也会返回所有正的 3。很奇怪。
标签: angularjs filter negative-number