2016-02-27 77 views
1

我有一個服務如下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
  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; 
    }) 
    
1

你的問題是不明確的,但你可以簡單地添加新的功能,以您的工廠服務,

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; 
 
    })