我的角度码有问题。
我正在尝试使用角度过滤器服务过滤和数组,但是当我过滤过滤器中的数组时,它会复制而不是采用数组中的每个元素,我已经尝试过跟踪,但它似乎没有工作。
这是我的角度代码:
.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 sep up:
<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)
当我尝试使用不同的数组时,我仍然会得到数组的五个重复
答案 0 :(得分:1)
您好,我认为 val path = arrayOf(doubleArrayOf(1.0, 2.0), doubleArrayOf(1.0, 2.0), doubleArrayOf(1.0,3.0), doubleArrayOf(8.0,9.0))
值为空或null,因此每次执行过滤器时都返回整个数组,这就是为什么您获得数组的原因次。
“range
”变量的价值是多少?
答案 1 :(得分:1)
过滤器采用的参数范围在调用过滤器时未设置。 html应该是,
<div class="col s12 m3" ng-repeat="car in [1,2,3,4,5] | priceRange: range" >
其中 范围 是过滤器中参数的输入。除非传递参数,否则不会执行if循环之后的行。