有时我需要在我的代码中使用 $scope.$apply
,有时它会抛出一个“摘要已经在进行中”的错误。所以我开始寻找一种方法来解决这个问题: AngularJS: 在调用 $scope 时防止已经在进行的错误 $摘要。然而,在评论(以及角度分明的维基)中,你可以看到:
不要执行 if (! $scope. $$stage) $scope. $application () ,这意味着您的 $scope. $application ()在调用堆栈中位置不够高。
现在我有两个问题:
另一个防止“正在消化”错误的“解决方案”似乎是使用 $timeout:
$timeout(function() {
//...
});
是这样吗?这样安全吗?因此,这里是真正的问题: 我如何才能消除 完全相信的可能性“摘要已经在进行中”错误?
PS: 我只使用 $scope。$application 在非同步的非 angularjs 回调中。(据我所知,在这些情况下必须使用 $scope。$application,如果您希望应用您的更改)