我知道配置阶段在服务可用之前运行,但是我需要使用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 };
};
});
不确定这是否是最佳方式,因为提供者应该用于配置而不提供格式化等功能。