2016-05-30 63 views
0

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

通常我的路径是这样的http://localhost:8080/mobileibenew/booking;

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

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

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

什么是最好的方式来检索我的春天项目的名称在前端(没有字符串操作)?

它必须看起来像这样:

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

其中,“项目名称”可能是持有该项目的名称的变量。

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

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

回答

0

你并不需要在URL编写你的情况下(在你的情况mobileibenew)。当服务器向浏览器返回脚本时,浏览器会知道哪个上下文服务器已经返回了请求。

在下面的javascript中使用相对URL。所以,当你更改项目名称或使用不同的上下文的名称部署,你没有任何改变

$http({ 
      method : 'POST', 
      url : 'availability', 
      data : {"routes": routeData, "adults": adults, "searchBy": "BY_FLIGHT"}); 
+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'}); 
}); 
+0

我想过使用常量,但我可能不得不做一些字符串操作,提取项目因此我没有使用它。不过,我可以在不同的环境下使用它,所以感谢您抽出时间:)。 –