Ошибка Angularjs inprogress

Я получаю angularjs ошибку [$ rootScope: inprog].

Error: [$rootScope:inprog] http://errors.angularjs.org/1.2.7/$rootScope/inprog?p0=%24digest .

это вызов функции

  Members.get({}, function (response) { // success $scope.family_mem = response.data; }, function (error) { // ajax loading error Data.errorMsg(); // display error notification }); 

в консоли я получаю результаты с помощью php controller function.but, но не обновляю $scope.family_mem а переходя к части ошибки. это директива

 myApp.directive('mySelect', function() { return{ restrict: 'A', link: function(scope, element){ $(element).select2(); } }; }); 

Обычно это означает, что вы определили $ rootScope. $ Применяются где-то вручную внутри другого углового кода, который уже имеет жизненный цикл. Это не должно происходить в обычных случаях, поскольку угловые дорожки сами жизненный цикл. Один общий случай, когда это необходимо, – это когда вам нужно обновить область действия из негласного кода (например, jquery или старомодный js-материал). Поэтому, пожалуйста, проверьте, есть ли у вас это. Если вам действительно нужно, лучше использовать безопасное приложение (общий фрагмент кода):

 angular.module('main', []).service('scopeService', function() { return { safeApply: function ($scope, fn) { var phase = $scope.$root.$$phase; if (phase == '$apply' || phase == '$digest') { if (fn && typeof fn === 'function') { fn(); } } else { $scope.$apply(fn); } }, }; }); 

Затем вы можете ввести эту услугу и сделать необходимый вызов:

 scopeService.safeApply($rootScope, function() { // you code here to apply the changes to the scope }); 

Ошибка [$ rootScope: inprog] inprogress в моем случае:
Случай 1: Это означает, что вы выполняете два действия одновременно.

Пример:

 goView(); hidePopOver(); //Will trigger error 

Используйте $ timeout, чтобы убедиться, что два действия (функция) не работают одновременно.

 goView(); $timeout(function () { hidePopOver(); }, 300); 

Случай 2 : действие не выполнено полностью.
Используйте $ timeout, чтобы убедиться, что выполнено первое действие.

 $timeout(function () { $(element.target).trigger('click'); }, 300);