将返回数据从服务中的http请求保存到本地存储,并在应用程序启动时以离子形式检查/加载它

时间:2016-10-08 11:15:26

标签: angularjs http caching ionic-framework local-storage

我正在创建一个Ionic应用程序,我正在利用$ http服务通过API以JSON格式从服务器提取页面数据。我的工厂看起来像这样:

 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;
});

这适用于访问我的视图中的数据,但我想将此返回的数据设置为本地存储,以便在应用启动或没有连接时访问它。

0 个答案:

没有答案