programing

Angularjs [$rootScope:inprog] 진행 중 오류 발생

cafebook 2023. 11. 4. 13:18
반응형

Angularjs [$rootScope:inprog] 진행 중 오류 발생

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 컨트롤러 기능으로 결과를 얻고 있습니다.업데이트 안 함$scope.family_mem오류 부분으로 이동합니다.이것이 지시입니다.

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

일반적으로 $rootScope을 정의했다는 의미입니다.$apply은 이미 수명 주기가 있는 다른 각도 코드에서 수동으로 어딘가에 있습니다.일반적인 경우에는 라이프사이클 자체의 각도 트랙으로 이러한 일이 발생해서는 안 됩니다.필요한 일반적인 경우는 비각형 코드(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] 진행 중인 내 경우 오류:
사례 1: 한 번에 두 가지 행동을 실행한다는 의미입니다.

예:

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

$timeout을 사용하여 두 가지 작업(함수)이 동시에 실행되지 않는지 확인합니다.

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

사례 2: 액션이 완전히 실행되지 않았습니다.
$timeout을 사용하여 첫 번째 작업이 실행되었는지 확인합니다.

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

저도 같은 문제에 직면했지만,time delay제 문제를 매력적으로 해결했습니다.

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

트리거가 jquery/javscript 쪽에 있는 경우.

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

언급URL : https://stackoverflow.com/questions/22733422/angularjs-rootscopeinprog-inprogress-error

반응형