无法访问Angulars $ resource返回的属性

时间:2016-08-15 06:17:03

标签: javascript angularjs ngresource

我试图用angulars资源工厂获取数据,但我不太明白如何正确处理响应。

工厂:

function dataFactory($resource, ENV) {
  return $resource('http://foo/bar', {
      accountId: '@accountId'
    },
    {
      getData: {
        method: 'POST',
         url: 'http://foo/bar',
         headers: {
            'Content-Type': 'application/json'
        }

      }
    }
  );
}

在服务中:

     function fetchRealTimeData() {
        return dataFactory.getData(requestParameters).$promise;

  }

在我的指令中:

dataToApply = CdnAnalyticsService.fetchRealTimeData()

当我记录dataToApply时,我得到了这个:

screenshot

我不能使用常规对象表示法来访问属性,返回undefined。

如何访问返回对象的属性?

1 个答案:

答案 0 :(得分:0)

您的资源正在返回承诺。您需要解析该承诺才能访问返回的数据。

function fetchRealTimeData () {
  return dataFactory.getData(requestParameters)
    .then(function (data) {
      return data;
    });
}

您正在执行此操作的方式,您将返回实际的promise对象,而不是promise中已解析的数据。您可以在控制台中查看数据的原因是它在注销时已经解决,但是当您尝试使用点表示法访问它时,承诺仍未解决且您未定义。