2016-04-13 5 views
1

中止私は、REST APIを呼び出すために1.4の角度を使用していますが、私は10 $ダイジェスト()の反復に達し

AngularJSをGET。

を中止することはこれが私のservices.js

(function (angular) { 
'use strict'; 

angular.module('myApp.services.dashboard', []) 
     .factory('DashboardService', DashboardService); 

DashboardService.$inject = ['$http', '$q', 'EndpointUrl']; 

function DashboardService($http, $q, EndpointUrl) { 
    function getStatus() { 
     var deferred = $q.defer(); 

     return $http.get(EndpointUrl + 'status') 
       .then(successRequest, failRequest); 

     function successRequest(data) { 
      deferred.resolve(data.data); 
      return deferred.promise; 
     } 
     ; 

     function failRequest() { 
      deferred.reject([]); 
      return deferred.promise; 
     } 
     ; 
    }; 
}; 

})(angular); 

であり、これは私のapp.js

.config(function ($stateProvider, $urlRouterProvider, $httpProvider, $locationProvider, $compileProvider) { 
       $locationProvider.html5Mode(false).hashPrefix('!'); 
       $compileProvider.debugInfoEnabled(false); 

       $stateProvider 
         .state('dashboard', { 
          controller: 'DashboardController as dashboard', 
          url: '/app/dashboard', 
          templateUrl: '/assets/js/src/dashboard/templates/dashboard.html', 
          resolve: { 
           getStatus: function (DashboardService) { 
            return DashboardService.getStatus(); 
           } 
          } 
         }); 

       $urlRouterProvider.otherwise('/app/dashboard'); 
       $httpProvider.defaults.useXDomain = true; 
       delete $httpProvider.defaults.headers.common['X-Requested-With']; 
      }) 

マイcontroller.jsでは何も行いません。

(function (angular) { 
    'use strict'; 
    angular.module('myApp.controllers.dashboard', []) 
      .controller('DashboardController', DashboardController); 
    DashboardController.$inject = ['$rootScope', '$state', '$filter', 'DashboardService', 'DashboardPeriods', 'getStatus']; 
    function DashboardController($rootScope, $state, $filter, DashboardService, DashboardPeriods, getStatus) { 

    } 
    ; 

})(angular); 

だから私は$ digest()の反復回数に達している理由を理解できませんでした。
REST APIは毎回同じJSONを返します。

+0

https://docs.angularjs.org/error/$rootScope/infdig –

答えて

0

ループを引き起こしている可能性のあるコールバックから、$ http Promiseを返してからdeferred.promiseを返します。 $ http returnを削除します。 deferred.promiseをコールバックメソッドから戻し、代わりにgetStatusメソッドから戻します。私の問題が解決しない

function DashboardService($http, $q, EndpointUrl) { 
    function getStatus() { 
     var deferred = $q.defer(); 

     $http.get(EndpointUrl + 'status') 
       .then(successRequest, failRequest); 

     function successRequest(data) { 
      deferred.resolve(data.data); 
     }; 

     function failRequest() { 
      deferred.reject([]); 
     }; 

     return deferred.promise; 
    }; 
    return {'getStatus': getStatus}; 
}; 
+0

。 – Mattia

+0

編集を参照してください。あなたの$ httpの返品に気付かなかった。 –

+0

はい、以前と同じように、私はまだ同じエラーが発生します。 – Mattia

関連する問題