我发现此代码段是有人为引导程序模式编写的角度指令的一部分。
//Update the visible value when the dialog is closed //through UI actions (Ok, cancel, etc.) element.bind("hide.bs.modal", function () { scope.modalVisible = false; if (!scope.$$phase && !scope.$root.$$phase) scope.$apply(); });
我知道这部分是用于绑定到hide.bs.modal事件的两种方式绑定的后半部分,并在UI更改时更新模式。
我只想知道为什么在调用apply之前检查$$ phase的scope和rootScope的人?
我们不能直接打电话吗?
这里的$$ phase是什么?
我尝试了很多搜索,找不到任何好的解释。
$$phase是角度处于$digest周期中时设置的标志。
$$phase
$digest
有时(在极少数情况下),您想要$$phase在执行操作之前先检查范围$apply。如果您尝试在$apply期间执行错误$digest:
$apply
错误:$ apply已经在进行中