正在使用流星角模板在Meteor应用程序中获取[$ rootScope:inprog] $ digest [SANITIZED URL]

问题描述 投票:0回答:1

正在使用流星角模板在流星应用程序中获取[$rootScope:inprog] $ digest已在进行[SANITIZED URL]

我在流星应用中的某些地方遇到了此错误。我尝试在$ timeout内将$ apply调用包装在我的应用程序中,但这没有用。我怀疑这与我的角度控制器中的Tracker.autorun()调用有关。 Tracker.autorun()是否遵循与Angular相同的摘要并应用周期?是多次调用函数的原因,一次又一次渲染视图页面,这会导致$ digest错误。

Tracker.autorun(() => {
    Multiple function calls here
})

logDNA screenshot

“”

angularjs meteor angularjs-directive angularjs-scope angularjs-digest
1个回答
0
投票

来自文档:

错误:$ rootScope:inprog操作已在进行中

诊断此错误

当您收到此错误时,诊断问题原因可能相当艰巨。最好的措施是从错误中调查堆栈跟踪。您需要查找已调用[C​​0]或$apply的位置,并且查找发生此情况的上下文。

应该有两个电话:

  • 第一个调用是良好的$digest / $apply,通常会被调用堆栈顶部附近的某些事件触发。

  • 第二个呼叫是错误的$digest / $apply,这是要调查的那个。

一旦确定了此呼叫,就可以逐步解决问题,并找出问题所在。

  • 如果在您的应用程序代码中进行了第二次调用,那么您应该查看为什么从$digest / $apply中调用此代码的原因。这可能是一个简单的疏忽,或者可能与前面描述的同步/异步情况相适应。

  • 如果第二个调用是在AngularJS指令内进行的,则很可能与前面描述的第二个编程事件触发方案相匹配。在这种情况下,您可能需要进一步查看树,以首先找到触发事件的原因。

有关更多信息,请参阅

  • $digest
© www.soinside.com 2019 - 2024. All rights reserved.