加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs中的模板递归限制(摘要循环)

发布时间:2020-12-17 17:37:56 所属栏目:安全 来源:网络整理
导读:我使用递归模板在angularJS中渲染树,但当树深度超过10时,AngularJS在控制台上给出了一个错误: "Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting! 例如this plnkr. 如果我理解正确并试着在上面加上简单的话(我知道它更复杂): 在第一
我使用递归模板在angularJS中渲染树,但当树深度超过10时,AngularJS在控制台上给出了一个错误:

"Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!

例如this plnkr.

如果我理解正确并试着在上面加上简单的话(我知道它更复杂):

>在第一个$digest()迭代中,它包含第一个模板,从而在项目上创建一个?atcher(实际上在item.ID和item.children上)
>然后,不是递归地包含模板并在之后创建观察者,它首先要检查item.children,并使用–ttl重新运行摘要循环
>然后两个值都是相同的,所以它继续并包含下一个模板并在新项目上设置观察者,然后返回第二步

因此,在10次迭代之后,ttl将为0,因此错误,尽管没有实际错误……

那么,有几个问题:

>我的分析是否正确?
>我应该在角度跟踪器上报告这个(因为我认为报告错误时角度是错误的)?
>有一个简单的解决方法吗?

非常感谢你!

编辑:

This plnkr(由于raw.github你需要用firefox看到)表明bindonce不是这个的解决方案……

解决方法

这显然是AngularJS的一个已知问题,唯一的解决方法并不令人满意,见 this issue.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读