Ionic:无法从本地存储中保存/加载数据

时间:2015-06-28 19:19:18

标签: save storage loading local ionic

我尝试保存应用程序从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"));
            }
      });
  }

1 个答案:

答案 0 :(得分:1)

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