在AngularJS中为所有$ https调用设置相对路径

时间:2014-06-05 11:14:23

标签: javascript angularjs

我是新的angularJS。 我使用我项目中的服务拨打了超过10 $ http的请求。 下面给出了一个服务代码。

loginApp.factory('serviceAuth', function($http) {
return {
    fnLoginAuth : function(aut,resp){
        return $http({
            method: 'GET',
            url: 'http://localhost:8080/myProjectname/serviceName', 
        }).success(function(result) {
               return result;
        });
    }
}

});

我希望 http://localhost:8080/myProjectname/ 这部分网址是可配置的,或使用变量代替此网址。

2 个答案:

答案 0 :(得分:1)

在我用 AngularJS 编写的应用程序中,我只是将变量放在$rootScope中。

app.run(['$rootScope',
    function($rootScope) {
        $rootScope.serverRoot = '/projectname/public';
    }
]);

并将其附加到服务中。

this.addTask = function(data) {
    return $http.post($rootScope.serverRoot + '/task/create', data);            
}

答案 1 :(得分:0)

为什么不添加另一个返回基本URL的服务?

app.factory('urlService', function() {
var url = "";
return {
    setUrl : function(newUrl){
        url = newUrl;
    },
    getUrl : function(){
        return url;
    }
}
});

并像这样使用它:

app.run(function(urlService) {
    urlService.setUrl('http://localhost:8080/myProjectname/');
})

loginApp.factory('serviceAuth', function($http, urlService) {
return {
    fnLoginAuth : function(aut,resp){
        return $http({
            method: 'GET',
            url: urlService.getUrl() + 'serviceName', 
        }).success(function(result) {
               return result;
        });
    }
}
});