working que not img cloak angularjs circular-dependency

angularjs - not - ng-cloak que es



La inyección de $ http en la fábrica angular($ exceptionHandler) da como resultado una dependencia circular (3)

Estoy usando esta solución, debido a problemas de dependencia circular con rootScope:

angular .module(''facilityLog'') .provider(''$exceptionHandler'', function() { "use strict"; this.$get = function($injector) { function exceptionHandler(exception, cause) { // This is the part where you get the instance of $http in your case var $rootScope = $injector.get(''$rootScope''); //... } return exceptionHandler; }});

Por lo tanto, si solicita la instancia dentro de la función ExceptionHandler, no obtendrá el error de dependencia circular.

Cuando intento inyectar $ http en una fábrica anulada, aparece el error:

Error no detectado: [$ injector: cdep] Se encontró una dependencia circular: $ http <- $ exceptionHandler <- $ rootScope

AngularModule.factory(''$exceptionHandler'', function ($http) {

¿Alguna idea de cómo resolver? si me inyecto usando [], $ http no está definido

edit_ _ __ _ __ _ __ _ __ _ __ _ _

según una respuesta a continuación he intentado:

MyModule.config(function($provide, $http) { $provide.decorator("$exceptionHandler", function($delegate) { return function(exception, cause) {..

Pero todavía me sale el error circular:

Error no detectado: [$ injector: cdep] Se encontró una dependencia circular: $ http <- $ exceptionHandler <- $ rootScope


Inyecte el $injector y luego obtenga el servicio $http desde allí. Algo como esto:

AngularModule.factory(''$exceptionHandler'', function ($injector) { var $http = $injector.get("$http");

Consulte https://groups.google.com/forum/#!topic/angular/lbFY_14ZtnU/discussion

Sin embargo, esto anulará completamente la funcionalidad $exceptionHandler proporcionada por Angular. Si solo desea agregar el registro del lado del servidor a la funcionalidad existente, vea esta pregunta sobre cómo aumentar la funcionalidad $exceptionHandler .


Utilicé lo siguiente para resolver esto. Observe cómo se usa la notación de matriz para que esta minificación sea segura. Tenga en cuenta también que estoy anulando completamente el $ esceptionHandler y estoy utilizando mi propio servicio para reemplazarlo.

angular .module(''app'') .factory(''$exceptionHandler'', $exceptionHandler); $exceptionHandler.$inject = [''$injector'', ''exceptionLoggingService'']; function $exceptionHandler($injector, exceptionLoggingService) { return function(exception, cause) { exceptionLoggingService.http = exceptionLoggingService.http || $injector.get(''$http''); exceptionLoggingService.error(exception, cause); }; }