我正在开发一个使用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”可以是包含项目名称的变量。
这使我不必进入每个文件并且必须更改名称。
请记住这是一个春季项目。
答案 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"});