在您可能拥有较大范围的大型应用程序中,如果您$scope.$apply
快速连续多次调用,您会收到“范围已在进行中”错误吗?
例如,我有一个链接到引导开关插件的指令。该指令仅显示一个开/关开关,用户可以单击该开关将布尔值切换为真/假。每次用户单击此按钮时,我的指令$scope.$apply()
都会更改一个范围变量以反映开关的新状态(打开或关闭)。
我担心如果用户快速连续单击开关,我可能会收到“正在消化”错误。但是,情况并非如此,每次事情进展得非常顺利,并且尽管$scope.$apply()
触发了多个调用,但范围值会立即在各处更新。
这是因为$scope.$apply
以某种方式进行了优化,因此它不会运行完整的摘要,而只会更新那些已更改的值,还是仅仅是因为我的范围目前相对较小,所以完整的摘要不需要很长时间才能运行?