http发布并获取服务

时间:2016-02-27 10:09:30

标签: angularjs ionic-framework

我的服务如下

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

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

    return service;
  })

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

2 个答案:

答案 0 :(得分: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;
   })

答案 1 :(得分:1)

  1. 您正在使用工厂方法创建服务,因此您需要创建一个对象并将其返回(依赖注入将确保此对象仅被实例化一次,因此它被用作单例< / em>的)。 您正在创建的此对象是否被称为&#34; service&#34;或者任何其他方式,无关紧要,无论如何都会有效。

  2. 正如Shankar在他的示例中所示,向您的服务添加更多方法就像向您声明的对象添加更多方法一样简单。为了澄清这个例子,我将添加你想要发布的参数,让任何使用该服务的人决定如何处理返回的promise(就像你在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;
    })