我知道配置阶段在服务可用之前运行,但我有一种情况需要使用 amyJsonDateTimeService
来注入$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 };
};
});
不确定这是否是最好的方式,因为提供程序应该用于配置而不是提供格式化等功能。