0

我将数据存储到 $cacheFactory 如下:

  $scope.loginCache = $cacheFactory.get('login') || $cacheFactory('login') ;
  $scope.loginCache.put("smsData",$scope.smsData) ;

后来我用以下方法检索它:

  $scope.loginCache = $cacheFactory.get('login') || $cacheFactory('login') ;
  $scope.smsData = $scope.loginCache.get('smsData') ;

但是,我无法访问$scope.smsData. 把它放到 console.log 确实显示了那里的所有值,但由于某种原因我无法访问数据 - 我做错了什么?

console.log($scope.smsData) ;  // displays full object
console.log($scope.smsData.value) ;  // `undefined`
console.log($scope.smsData[0]) ;  // `undefined`
console.log($scope.smsData.value[0]) ; // `undefined`

console.log($scope.smsData) 输出:

Promise {$$state: {…}}
   $$state:
      status:1
      value:Array(2)
         0:{table: "smsSent", data: {…}}
         1:{apiStatus: true}

最终,我试图检索: value[0].data

4

1 回答 1

1

这是因为您$scope.smsData是 promise 对象而不是 JSON 对象。你可以做的是:

存储时:

$scope.loginCache = $cacheFactory.get('login') || $cacheFactory('login') ;
// first resolve the promise and then store in cache
$scope.smsData.then(function(response){
     $scope.loginCache.put("smsData",response) ;
});

因此,当您从中检索数据时$cacheFactory,您将获得所需的对象。

于 2018-08-14T16:11:18.540 回答