我有一个控制器,里面有一个http.get函数,如下所示:
$http.get('api/population_data', {cache: true}).success(function(data) {
$rootScope.population_data = data;
});
我目前正在重构我的代码以将http请求放入服务中,然后从控制器中的服务调用相应的函数(使应用程序更易于测试,并遵循更好的设计实践):
DashboardHTTPService.get_population_data().then(
function(response) {
$rootScope.population_data = response;
});
我的问题是,当我进行.get_population_data调用时,该服务不再解析http.get请求中的完整URL:我想说的是,当我在仪表板中有http.get请求时控制器,我可以从那里发出请求,它会知道导航到我的api url'/ dashboard / 4 / api / population_data',但是当我从服务中的函数创建http.get()时它只是寻找/ api / population_data(不像以前那样在/ dashboard / 4之前添加)。
我认为在我失踪的控制器环境中有一些关于url解析的内容......有人可以解释为什么会这样吗?我想我可以让控制器传递给服务的location.pathname,但我不认为这是最好的解决方案......
谢谢,抱歉有点困惑,但我不认为我看到的任何其他问题都适当地回答了我的问题..