Javascript 如何检索angularjs cachefactory.get值
我正在将数据存储到$cacheFactory,如下所示:Javascript 如何检索angularjs cachefactory.get值,javascript,angularjs,cachefactory,Javascript,Angularjs,Cachefactory,我正在将数据存储到$cacheFactory,如下所示: $scope.loginCache = $cacheFactory.get('login') || $cacheFactory('login') ; $scope.loginCache.put("smsData",$scope.smsData) ; 稍后,我将使用以下工具检索它: $scope.loginCache = $cacheFactory.get('login') || $cacheFactory('login')
$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)输出:
最后,我试图检索:value[0]。data这是因为您的
$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
检索数据时,您将获得所需的对象。看起来您正在处理异步回调。试着像承诺一样解决它:$scope.smsData.then(function(res){console.log(res.value)})
是的,就是这样。这是保留承诺,而不是保留承诺的结果。
$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) ;
});