Использование фабрики в конфиге

Я знаю, что этап настройки запускается до того, как сервисы становятся доступны, но у меня есть ситуация, когда мне нужно использовать myJsonDateTimeService ввести $httpProvider.defaults.transformResponse как это:

angular.module('myJsonDateTimeInterceptor', ['myJsonDateTime'])
.config(function($httpProvider, myJsonDateTimeService){
    $httpProvider.defaults.transformResponse.push(function(responseData){
        myJsonDateTime.format(responseData); // Logic to change DateTime.
        return responseData;
    });
});

angular.module('myJsonDateTime', [])
.factory('myJsonDateTimeService', function(){
    var factory = {
        format: function(data) { ... }
    };
    return factory;    
});

Проблема в том, что myJsonDateTimeService используется в качестве службы в других местах, и я хотел бы использовать ту же логику в конфигурации моего перехватчика, а не просто копировать код формата.

Я также не знаю, как создать myJsonDateTimeProvider это может использовать ту же логику фабрики.

Редактировать 1

Как и предполагалось, я перестроил эту фабрику у провайдера следующим образом:

angular.module('myJsonDateTime', [])
.provider('myJsonDateTimeService', function(){
    var format = function(data) { ... };
    this.format = format;

    this.$get = function() {
        return { format: format };
    };
});

Не уверен, что это лучший способ, поскольку поставщик должен использоваться для настройки, а не предоставлять такие функции, как форматирование.

0 ответов

Другие вопросы по тегам