在AngularJS中添加等待ng-repeat

时间:2014-06-10 12:22:42

标签: javascript ajax angularjs angularjs-ng-repeat

我有一个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;
};});

如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

无需添加&#34;等待&#34;只需在控制器中初始化数组,这样即使ajax调用失败,UI也会继续运行,并且数据不会添加到数组中。

在您的控制器中执行以下操作:

$scope.items = [];