#angularjs #http #caching #ionic-framework #local-storage
#angularjs #http #кэширование #ionic-framework #local-storage
Вопрос:
Я создаю приложение Ionic и использую $ http service для извлечения данных страницы с сервера в формате JSON через API. Моя фабрика выглядит так:
app.factory('FaqHiveData', function ($http, $q, $timeout, $log, $stateParams, $ionicLoading) {
var faqdata = [];
$ionicLoading.show();
return {
all: function () {
var dfd = $q.defer();
$http.get("http://hive.squaresoftng.com/api/get/faq/")//, {cache: true}
.then(function (response) {
faqdata = response.data;
dfd.resolve(faqdata);
}).finally(function(){
$ionicLoading.hide();
});
return dfd.promise;
}
};
});
в app.js , я использую функцию разрешения в моем app.config для каждого состояния
.state('app.faq', {
url: '/faq',
views: {
'menuContent': {
templateUrl: 'templates/faq.html',
controller: 'FaqCtrl',
resolve: {
faqdata: function (FaqHiveData) {
return FaqHiveData.all();
}
}
}
}
})
я также включаю кэш в своем app.config
// enable http caching
$httpProvider.defaults.cache = true;
затем я использую возвращаемые данные в своем контроллере из области видимости
app.controller('FaqCtrl', function ($scope, $stateParams, $http, $timeout, $log, faqdata, ionicMaterialInk) {
$scope.faqdata = faqdata;
//add ref to other needed value in the scope.faqdata
$scope.faqs = $scope.faqdata.faqs;
});
это работает для доступа к данным в моих представлениях, но я хочу установить эти возвращаемые данные в локальное хранилище, чтобы иметь к ним доступ при запуске приложения или при отсутствии соединения.
Комментарии:
1. как насчет того, чтобы просто делать то, что вы хотите? localStorage API довольно прост в использовании: developer.mozilla.org/en/docs/Web/API/Window/localStorage