Ionic:来自本地存储的故障 saving/loading 数据
Ionic: Trouble saving/loading data from local storage
我正在尝试保存应用程序从 http.get 请求中获取的数据,并在用户下次打开应用程序但设备未连接到互联网时加载它。
我的数据从 Http.get 请求加载正常,但没有保存或加载。
我不确定为什么我的代码不起作用。这是我的代码:
.controller('announcementCtrl', function($scope, $http) {
$scope.data = [];
$scope.infiniteLimit = 1;
$scope.doRefresh = function() {
$http.get('http://www.example.com')
.success(function(data) {
$scope.data = data;
window.localStorage.setItem("data", JSON.stringify(data));
})
.error(function() {
$scope.data = data;
if(window.localStorage.getItem("data") !== undefined) {
$scope.data = JSON.parse(window.localStorage.getItem("data"));
}
});
}
在 error
中,$scope.data = data;
可能会将 $scope.data
设置为 undefined
,除非您有一些我们不知道的全局 data
变量。我猜你的 error
函数应该更像
.error(function() { // You don't get any data from here, so setting anything based on it will produce undesired results
var data = window.localStorage.getItem("data")
if(data && typeof JSON.parse(data) === "object") {
$scope.data = JSON.parse(data); // Set the data from local storage
}
});
我正在尝试保存应用程序从 http.get 请求中获取的数据,并在用户下次打开应用程序但设备未连接到互联网时加载它。
我的数据从 Http.get 请求加载正常,但没有保存或加载。
我不确定为什么我的代码不起作用。这是我的代码:
.controller('announcementCtrl', function($scope, $http) {
$scope.data = [];
$scope.infiniteLimit = 1;
$scope.doRefresh = function() {
$http.get('http://www.example.com')
.success(function(data) {
$scope.data = data;
window.localStorage.setItem("data", JSON.stringify(data));
})
.error(function() {
$scope.data = data;
if(window.localStorage.getItem("data") !== undefined) {
$scope.data = JSON.parse(window.localStorage.getItem("data"));
}
});
}
在 error
中,$scope.data = data;
可能会将 $scope.data
设置为 undefined
,除非您有一些我们不知道的全局 data
变量。我猜你的 error
函数应该更像
.error(function() { // You don't get any data from here, so setting anything based on it will produce undesired results
var data = window.localStorage.getItem("data")
if(data && typeof JSON.parse(data) === "object") {
$scope.data = JSON.parse(data); // Set the data from local storage
}
});