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循环之后的行不会被执行。
我的 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循环之后的行不会被执行。