当离子应用程序脱机时,将显示缓存的JSON对象

时间:2017-08-19 19:06:16

标签: angularjs ionic-framework

我有以下AngularJS控制器设置来从外部API获取信息。问题是可能存在移动设备没有或具有可怕的互联网连接的情况。我正在使用cordovaNetwork查看设备是否在线,但似乎无法正常工作。

我在控制台中收到以下错误:TypeError:无法读取未定义的属性“type”

有人可以告诉我我缺少的东西:

    .controller('LennoxProductCtrl', function($scope, $ionicPopup, $cordovaNetwork) {

  if($cordovaNetwork.isOnline()) {

    $scope.loading = true;                
    $.ajax({
        url: "https://api.lennox.com/v1/hSPgMEU/categories",
        dataType: 'json',
        headers: { Accept: 'application/json' },
        type: 'GET',
        success: function(data) {
            $scope.loading = false;
            $scope.$apply(function() {
              console.log(data.Category);
                $scope.categories = data.Category;
            });
            localStorage.setItem("lennoxProducts", JSON.stringify(data.Category));
        },
        error: function (data) {

          if(localStorage.getItem("lennoxProducts") !== undefined) {
              $scope.categories = JSON.parse(localStorage.getItem("lennoxProducts"));
          } 
          $scope.loading = false;

        }            
    });

  } else {
    $ionicPopup.alert({
      title: 'Error',
      content: 'Check Your Network Connection'
    });
  }

})

1 个答案:

答案 0 :(得分:0)

使用Web开发人员工具查看时,cordovaNetwork显然总是会抛出错误,但是当应用程序构建并在设备上运行时,它似乎正常工作。