Сохранение возвращаемых данных из http-запроса в службе в локальное хранилище и проверка / загрузка их при запуске приложения в ionic

#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