HTTP POST和得到服务

问题描述:

我有一个服务如下HTTP POST和得到服务

angular.module('starter.service') 
    .factory('authService', function($http) { 
    var service = {}; 

    service.GetByUsername = function() { 
     return $http.get('/js/user.json'); 
    } 

    return service; 
    }) 

我只需要知道两件事情, 1.为什么它被声明名为服务对象? 2.its用于获取对象的服务,我应该更改哪些更改以添加另一个函数来发布对象(使用相同的代码)?不要删除当前的功能。

  1. 您正在使用的工厂方法来创建一个服务,让你需要创建一个对象并返回它(依赖注入将确保这个对象只被实例化一次,所以它被用作单例)。 无论你创建的这个对象被称为“服务”还是其他任何方式,无关紧要,它都可以工作。

  2. 正如Shankar在他的例子中所示,向您的服务添加更多方法与向您声明的对象添加更多方法一样简单。为了澄清的例子,我会添加你想要发布的说法,让不管是谁使用该服务来决定如何处理返回的承诺做(因为你在GET方法做):

    angular.module('starter.service') 
    .factory('authService', function($http) { 
    var service = {}; 
    
    service.GetByUsername = function() { 
        return $http.get('/js/user.json'); 
    } 
    
    service.PostUser = function(user) { 
        return $http.post("/url/to/post/user", user); 
    } 
    
    return service; 
    }) 
    

你的问题是不明确的,但你可以简单地添加新的功能,以您的工厂服务,

angular.module('starter.service') 
 
    .factory('authService', function($http) { 
 
    var service = {}; 
 

 
    service.GetByUsername = function() { 
 
     return $http.get('/js/user.json'); 
 
    } 
 
     
 
    service.PostUser = function() { 
 

 
     var data = {} 
 
     $http.post("/js/user.json", data).success(function(data, status) { 
 

 
     }) 
 

 
    } 
 
    return service; 
 
    })