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

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

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

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

Войти через центр авторизации
Похожие вопросы