public/javascripts/app/lib/utils/safe-apply.js (12 lines of code) (raw):
//SAFE APPLY
//CHECKS THE CURRECT CYCLE AND RUNS THE FUNCTION ACCORDINGLY
export default ($scope, fn) => {
if (!$scope || !fn) {
return;
}
const phase = $scope.$root.$$phase;
if (phase === '$apply' || phase === '$digest' ) {
fn();
}
else {
$scope.$apply(fn);
}
}