Angular服务将数据传递给控制器

时间:2016-01-30 19:17:50

标签: angularjs angularjs-service

我正在尝试创建一个将数据传递给控制器​​的服务。 我在控制台中看不到任何错误,但数据不会显示。我究竟做错了什么?

服务

app.service('UsersService', function($http, $q) {
  var url = '/users';
  var parsePromise = $q.defer();

  $http.get(url).success(function(data) {
    parsePromise.resolve(data);
  });

  return parsePromise.promise;
});

控制器

app.controller('contactsCtrl',
  function($scope, $routeParams, UsersService) {
    // Get all contacts
    UsersService.get().then(function(data) {
      $scope.contacts = data;
  });
});

2 个答案:

答案 0 :(得分:1)

现已弃用成功。

app.service('UsersService', function($http) {
  var url = '/users';

  this.get = function() {
      return $http.get(url).then(function(response) {
        return response.data;
      });
  }
});

答案 1 :(得分:-1)

您指的是UsersService.get(),因此您必须定义要调用的.get()函数:

app.service('UsersService', function($http, $q) {
  var url = '/users';

  this.get = function() {
      var parsePromise = $q.defer();

      $http.get(url).success(function(data) {
        parsePromise.resolve(data);
      });

      return parsePromise.promise;
  }
});