Angularjs将服务从$ resource转换为$ http

时间:2014-03-22 11:03:51

标签: angularjs

如何将以下使用$ resource的代码服务转换为使用$ http?

angular.module('myApp')
    .factory('MyService', function ($resource) {
        var url = "..";
        return $resource("", {},
            {
                'servizio1': { method: "GET", url: basePath },
                'servizio2': { method: "POST", url: url, data: {} },
                'servizio3': { method: "POST", url: url, data: {} } 
            }
    });

提前致谢。

1 个答案:

答案 0 :(得分:0)

首先回答您的问题,尝试以下方法:

angular.module('myApp')
   .factory('MyService', function ($http) {
       var url = "..";
       var basePath = "...";
       return {
               servizio1: function(){ return $http.get(basePath); },
               servizio2: function(data){ return $http.post(url, data); } 
           }
   });

用以下方式调用:

var returnValue = (new MyService()).servizio1.then(function(data){...})

但实际上您也可以使用$ resource API并执行以下操作:

angular.module('myApp')
.factory('MyService', function ($resource) {
    var url = "..";
    return $resource(url,{}, {
        saveIt: {
            method: 'POST',
            params: {url: basePath}
    }
});

adn用

调用它
MyService.get({}, function(data){...});
MyService.saveIt({}, postData, function(){success...}, function(){error...});

查看AngularJS docs了解更多