0
我正在通过以下this gitcode和google ng-conf为我的应用程序创建API提供程序。但是这是在我的应用程序重写$ routeProvider。正如我在控制台中检查$ routeProvider(在应用程序配置中),它只给我我的apiProvider的实例。这是为什么发生? $ routeProvider和apiProvider如何同时使用?请参考this gitcode和下面的代码..自定义Api提供程序
websiteApp.provider('customApi',
function() {
var baseRoute = '';
this.endpoints = {};
this.setBaseRoute = function(route) {
this.baseRoute = route;
};
this.endpoint = function(name) {
var endpointConfig = new ApiEndpointConfig();
this.endpoints[name] = endpointConfig;
return endpointConfig;
};
this.$get = ['$injector', function($injector) {
console.log("$get");
var api = {};
var self = this;
angular.forEach(this.endpoints,
function(endpointConfig, name) {
api[name] = $injector.instantiate(ApiEndpoint, {
baseRoute: self.baseRoute,
endpointConfig: endpointConfig
});
});
return api;
}];
});
websiteApp.config(['FacebookProvider', 'customApiProvider', '$routeProvider',
function ($routeProvider, customApiProvider, FacebookProvider) {
customApiProvider.setBaseRoute('/api/v0/');
$routeProvider
.when('/search',
{
templateUrl: 'assets/angular/widgets/partials/search.html'
})
.when('/',
{
templateUrl: 'assets/angular/widgets/partials/recommendations.html'
});
var myAppId = APPID;
FacebookProvider.setAppId('myAppId');
FacebookProvider.init(myAppId);
}]);
为什么如果你想同时运行两个你想创建第二个? – Dalorzo
我没有正确理解你。我想你在问我为什么同时需要他们两个。原因是:apiProvider可以让代码看起来干净并且可以管理apis。虽然我需要一个$ routeProvider来路由模板。除此之外,我需要一个我正在使用的第三方应用程序所需的FacebookProvider。但FacebookProvider和$ routeProvider都被apiProvider覆盖。 –
为什么服务或工厂不帮你?为什么你认为你需要重塑一项服务? – Dalorzo