Angular.js两个文摘()继承冲突



我有这个函数:

function scopeMutateSuccess(modalInstance, state) {
    $rootScope.$apply(function() {
      modalEventConfig.statusType = 'success';
      modalEventConfig.nodeStatus = 'Completed Successfully';
    });
}

在调用栈中…在这个函数之前有一个digest()被调用。然而,当这个函数被调用时,它仍然在运行,并且我得到一个已经在进行中的digest()。我需要在这个函数中使用自己的digest(),否则视图不会使用作用域成员值更新。第一个digest()在其他地方被调用,而不是由我,所以我不能控制它发射。

是否有一个事件侦听器,当一个digest()结束或一种方法来防止它们发生冲突?

您总是可以使用$scope.$$phase检查正在进行的摘要(如果正在进行则返回true)。

然而,这里最简单的修复似乎只是将内部函数包装成$timeout回调(它为您处理正在进行的问题),像这样:
function scopeMutateSuccess(modalInstance, state) {
    $timeout(function() {
      modalEventConfig.statusType = 'success';
      modalEventConfig.nodeStatus = 'Completed Successfully';
    }, 0);
}

最新更新