我有一个ng-repeat
块,我创建的元素很少元素中的数据来自ajax请求,这需要一点时间。同样在同一个块中,我使用过滤器来过滤掉一些不需要的数据。对于过滤,我循环遍历来自ajax请求的数据列表。但它告诉我列表没有定义。
我能想到的是这是因为ajax请求中的延迟。以下是我的代码:
HTML:
<div ng-repeat="item in items | doFilter: pricemin" >
<div><img src="images/nopreview.png" class="item-preview"/></div>
<div>{{item.NAME}}</div>
<div>{{item.PRICE}}{{item.CURRENCY}}</div>
<div>{{item.DESCRIPTION}}</div>
<div><button ng-click="addToCart(item)">Add To Cart</button></div>
</div>
使用Javascript:
app.filter('doFilter', function(){
return function(items, pricemin){
var minPrice = [], maxPrice = [];
for (var i =0; i < items.length; i++){
if (pricemin != "") {
if(pricemin <= items[i].PRICE)
minPrice.push(items[i]);
}
}
return minPrice;
};});
如何解决这个问题?
答案 0 :(得分:4)
无需添加&#34;等待&#34;只需在控制器中初始化数组,这样即使ajax调用失败,UI也会继续运行,并且数据不会添加到数组中。
在您的控制器中执行以下操作:
$scope.items = [];