yarkov
@yarkov
Помог ответ? Отметь решением.

Как инжектить фабрику в фабрику?

Пытаюсь написать интерцептор $http. И в нем при получении ответа надо вызвать метод одной фабрики. Логично предположить, что нужно заинжектить эту фабрику. В итоге такой код:
/*global angular*/
(function () {
	'use strict';

	angular
		.module('App')
		.factory('httpErrorResponceInterceptor', ['$rootScope', 
                								  //'authFactory', 
                								  '$log', 
                								  httpErrorResponceInterceptor]);

	httpErrorResponceInterceptor.$inject = ['$rootScope', 
                							//'authFactory', 
                							'$log'];

	/*@ngInject*/
	function httpErrorResponceInterceptor($rootScope, 
                    					  //authFactory, 
                    					  $log) {
		var self = {};

        self.response = function(response) {

            $log.debug('call authFactory.errorResponse');
            //authFactory.errorResponse(response);
            $log.debug('authFactory.errorResponse called');
            return response;

        }

		return self;
	}

})();

authFactory - это та самая фабрика. Если раскомментировать строчки с ее упоминанием, то приложение при запуске падает. ЧЯДНТ?
  • Вопрос задан
  • 145 просмотров
Пригласить эксперта
Ответы на вопрос 1
Вы либо пишете зависимости в массиве:
.factory('httpErrorResponceInterceptor', ['$rootScope',
     //'authFactory', 
     '$log', 
     httpErrorResponceInterceptor]);

Либо через $inject:
httpErrorResponceInterceptor.$inject = ['$rootScope', 
    'authFactory', 
    '$log'];

Это эквивалентные записи, и писать и так и так не надо.
Вообще, было бы не плохо приложить stack trace ошибки. Фабрика сама по себе работает?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы