我正在创建一个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;
});
这适用于访问我的视图中的数据,但我想将此返回的数据设置为本地存储,以便在应用启动或没有连接时访问它。