angular 过滤复制数组

angular filter duplicating array

我的 angular 代码有问题。

我正在尝试使用 angular 过滤器服务来过滤和排列,但是当我开始在过滤器中过滤数组时,它会复制而不是获取数组中的每个元素,我已经尝试过跟踪但它似乎没有用。

这是我的 angular 代码:

.filter('priceRange', function() {
        return function(arr, range) {
            if (!range) {return arr; }
            var priceResult = [];
            var pRange = range.split('-');
            angular.forEach(arr, function(key, index) {
                if (key.pPice >= pRange[0] && key.Price <= pRange[1]) {
                    priceResult.push(key);
                }
            })
            console.log(arr);
            return priceResult;
        }
    })

这是我的 html 分隔符:

<div class="col s12 m3" ng-repeat="car in [1,2,3,4,5] | priceRange" >
</div>

当我 console.log 过滤器部分中的数组时,我得到:

 [1, 2, 3, 4, 5]    rentTatu.js (line 66)
 [1, 2, 3, 4, 5]    rentTatu.js (line 66)
 [1, 2, 3, 4, 5]    rentTatu.js (line 66)
 [1, 2, 3, 4, 5]    rentTatu.js (line 66)
 [1, 2, 3, 4, 5]    rentTatu.js (line 66)

当我尝试使用不同的数组时,我仍然得到数组的副本 5 次

你好我觉得range值为空或null,所以返回整个数组,每次去执行过滤器,这就是为什么你得到数组五次。

range”变量的值是多少?

过滤器采用调用过滤器时未设置的参数范围。 html 应该是这样的,

<div class="col s12 m3" ng-repeat="car in [1,2,3,4,5] | priceRange: range" >

其中 range 是过滤器中参数的输入。除非你传递参数,否则if循环之后的行不会被执行。