$ q没有回复我发送的承诺

时间:2013-12-01 01:56:57

标签: javascript angularjs

我有一个问题让我耐心等待。我的承诺开始不起作用,我认为这可能是我的版本问题。我已经多次制作了这个代码,它就像一个魅力:

angular.module('blogApp')
  .factory('person', function ($http, $q) {
    var url = 'http://localhost:3000/pessoas';

    return {
      getPeople: function() {
      var d = $q.defer();

      $http.get(url)
        .success(function(data) {
          d.resolve(data);
        });
      return d.promise;
    }
});

我的控制员:

angular.module('blogApp')
 .controller('MainCtrl', function ($scope, person) {        
   $scope.people = person.getPeople();
 });

我已经记录了person.getPeople()并且没有解析就显示了deffered对象。

我错过了什么? 谢谢!

1 个答案:

答案 0 :(得分:2)

您正在影响对people变量的承诺。 是否解决不是问题的一部分。 你想要的是影响http调用的结果,而不是承诺。

这是一个例子:

angular.module('blogApp')
  .factory('person', function ($http, $q) {
    var url = 'http://localhost:3000/pessoas';

    return {
      getPeople: function() {
         return $http.get(url);
    }
});

angular.module('blogApp')
 .controller('MainCtrl', function ($scope, person) {        
   person.getPeople()
       .then(function(data){
             $scope.people = data; 
        }
 });