2014-04-27 544 views
0

我正在通过以下this gitcodegoogle 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); 
}]); 
+0

为什么如果你想同时运行两个你想创建第二个? – Dalorzo

+0

我没有正确理解你。我想你在问我为什么同时需要他们两个。原因是:apiProvider可以让代码看起来干净并且可以管理apis。虽然我需要一个$ routeProvider来路由模板。除此之外,我需要一个我正在使用的第三方应用程序所需的FacebookProvider。但FacebookProvider和$ routeProvider都被apiProvider覆盖。 –

+0

为什么服务或工厂不帮你?为什么你认为你需要重塑一项服务? – Dalorzo

回答

1

如果写入精缩,而不是使用ngmin参数顺序必须与字符串顺序相匹配安全的代码。

相关问题