AngularJS Promise已解决但无法访问数据

时间:2017-03-30 14:55:34

标签: javascript angularjs promise angular-promise

var promise = GetQuestions.quote.get();
console.log(promise);
promise.$promise.then(function(quote) {
  $scope.quotes = quote;
  console.log($scope.quotes);
  for( quote in $scope.quotes){
     console.log(quote.cite);
  }
});

工厂

.factory('GetQuestions', ['$resource', function($resource){
   return {
      quote: $resource('**Resource Link**', {}, { get: { method: 'GET', isArray: true }})
   };
}])

这是console.log(promise):

[$promise: Promise, $resolved: false]

这是console.log($ scope.quotes): enter image description here

并且console.log(quote.cite)记录未定义

问题:

我的问题是我无法访问“引用”,承诺应该已经解决,但我似乎无法正确访问数据。我尝试过promise.then()(而不是promise。$ promise.then()),但是我收到一个错误告诉我promise.then()不是函数。我不知道为什么会这样。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

尝试

而不是for var in list语法
$scope.quotes.forEach(function(quote) {
    console.log(quote.cite);
});

for var in list不应该用于迭代数组。它的目的是迭代对象属性。当你使用它迭代一个数组时,你经常会得到奇怪的行为。

请参阅this SO question