Как получить значения angularjs cachefactory.get
Я храню данные в $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}
В конечном итоге я пытаюсь получить: значение [0].data
1 ответ
Это потому что ваш $scope.smsData
это объект обещания, а не объект 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
, вы получите желаемый объект.