gpt4 book ai didi

angularjs - $ rootScope :infdig error caused by filter?

转载 作者:行者123 更新时间:2023-12-04 05:38:47 24 4
gpt4 key购买 nike

我正在对ng-repeat中的数组进行过滤。

div.row(ng-repeat="log in logs | prepare_log | orderBy: 'log.created'")

在prepare_log过滤器中,我正在这样做:
value.stack_trace = angular.fromJson(value.stack_trace)

如果我将其更改为:
value.stack_trace = angular.fromJson(value.stack_trace).reverse()

我收到infdig错误。

我不知道它是否相关,但是我正在内部ng-repeat中的stack_trace属性上进行迭代。

有什么想法我在这里做错了吗?

最佳答案

您正在引起一个无限的$ digest循环,因为您正在摘要循环中更改模型。

幕后发生的事情是:

  • ng-repeat解析集合表达式以找出需要“加盖”哪些行,并实例化观察者以在集合更改时通知您
  • 每次运行过滤器时,您都可以通过为value.stack_trace分配一个新值来更改其中一项,从而触发ng-repeat的观察者进行选择,并一遍又一遍地开始
  • Angular检测到循环并中止

  • 要解决该问题,请避免更改过滤器中的模型。

    希望对您有所帮助!

    关于angularjs - $ rootScope :infdig error caused by filter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20963462/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com