0

我有一个从 $http.get 返回对象的工厂

app.factory( 'myFactory', function($http) {
  return {
    get: function() {
        return $http.get('/data').success(function(data) {
          return data
        })
    }
  }
})

然后

$scope.listings = myFactory.get()

在 index.html 中,我在listings.data上使用 ng-repeat,找到每个对象都没有问题。

然后从指令中调用 .getListings() ,它位于我的控制器和 Chrome Javascript 控制台中 $scope.listings =

Object {then: function, success: function, error: function, $$v: Object}

为什么我不能只用这个?

$scope.listings.data

可以使用它吗?

$scope.listings.$$v.data

$$v 是什么?

4

1 回答 1

1

您在使用服务时在代码中犯了一点错误,您返回一个承诺对象,当您成功完成来自服务器的响应时,该对象将被填充,因此请修改下面的代码以使其正常工作。

app.factory( 'myFactory', function($http) {
  return {
    get: function() {
        return $http.get('/data')
    }
  }
})


myFactory.get().then(function(data){
$scope.listings=data;
});
于 2013-05-28T05:52:43.520 回答