首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误:达到10个$digest()迭代

错误:达到10个$digest()迭代
EN

Stack Overflow用户
提问于 2017-02-02 16:56:36
回答 1查看 3.6K关注 0票数 1

我有下面的代码重复和显示购物车的项目。

代码语言:javascript
运行
复制
<div ng-repeat="retailer in cart.getOrderedByRetailer()" >
      <ion-item>
        {{retailer.retailer_name}}
      </ion-item>
      <ion-item class="item-icon-right canasta-item canasta-height" ng-repeat="cartitem in retailer.order_items">
    {{cartitem.stockitem.product.name| limitTo: 20}}
    </ion-item>
</div>

使用下面的方法,我尝试订购购物车中的物品,但我做不到

getOrderedByRetailer:函数(){

代码语言:javascript
运行
复制
        var ordered_order_items = this.content.items.reduce(function (map, obj) {

            if (map[obj.stockitem.retailer] === undefined) {
                //console.log(map[obj.stockitem.retailer]);
                map[obj.stockitem.retailer] = {
                    'retailer_name': obj.stockitem.retailer,
                    'order_items': []
                }
            }

            map[obj.stockitem.retailer].order_items.push(obj);
            //console.info(map);

            return map;
        }, {});

        return ordered_order_items

    }

当我运行上面的代码时,我得到了一个错误:达到了10个$digest()迭代。流产!我的控制台出错了。

有人能帮我弄清楚这里出了什么问题吗?非常感谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-03 05:55:48

问题是,每当执行getOrderedByRetailer()时,angularjs都认为它的结果是新的,甚至看起来像以前的结果。当函数返回数组时,它就是共同问题。因此,如果函数的结果仅依赖于this.content.items,则可以这样重构代码:

代码语言:javascript
运行
复制
<div ng-repeat="retailer in cart.getOrderedByRetailerResult" >
    ....
</div>

Javascript:

代码语言:javascript
运行
复制
this.content.items = [];
//each time this.content.items are changed call getOrderedByRetailer():
this.cart.getOrderedByRetailerResult = getOrderedByRetailer();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42007970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档