Angular + Spring,$ http和$ location获取项目名称

时间:2016-05-30 06:43:53

标签: java angularjs spring

我正在开发一个使用spring mvc(后端)和前端角度的移动互联网预订引擎。

通常我的路径会像http://localhost:8080/mobileibenew/booking一样;

在控制器内部,我向后端(spring)发出$ http调用以获取或发布api数据。例如:

$http({
            method : 'POST',
            url : '/mobileibenew/availability',
            data : {"routes": routeData, "adults": adults, "searchBy": "BY_FLIGHT"});

mobileibenew 是spring项目的名称。如果我更改项目的名称,那么这将直接影响我的前端代码,即$ http调用。

在前端检索弹簧项目名称的最佳方法是什么(没有字符串操作)?

它必须如下所示:

$http({ method : 'POST', url: projectname + '/booking', data : 'somedata'});

其中“projectname”可以是包含项目名称的变量。

这使我不必进入每个文件并且必须更改名称。

请记住这是一个春季项目。

2 个答案:

答案 0 :(得分:1)

在您的应用模块中定义contant,例如

angular.module('app',[]).constant('PROJECT_NAME','projectname');

然后你可以像

一样注入它
.controller('MyController', function ($http, PROJECT_NAME) {
  $http({ method : 'POST', url: PROJECT_NAME + '/booking', data :  'somedata'});
});

答案 1 :(得分:0)

您无需在URL中编写上下文(在您的情况下为mobileibenew)。当服务器将脚本返回给浏览器时,浏览器会知道上下文服务器已从哪个服务器返回了请求。

在javascript中使用相对URL,如下所示。因此,当您更改项目名称或使用不同的上下文名称进行部署时,您不必更改任何内容

$http({
            method : 'POST',
            url : 'availability',
            data : {"routes": routeData, "adults": adults, "searchBy": "BY_FLIGHT"});