2017-08-19 1 views
0

Ich habe das folgende AngularJS-Controller-Setup, um Informationen von einer externen API abzurufen. Das Problem ist, dass es eine Situation geben kann, in der das Mobilgerät keine schreckliche Internetverbindung hat oder hat. Ich verwende cordovaNetwork, um zu sehen, ob das Gerät online ist, aber es scheint nicht zu funktionieren.Abrufen des im Cache gespeicherten JSON-Objekts, wenn die ionische App offline ist

Ich erhalte die folgende Fehlermeldung in der Konsole: Typeerror: kann Eigenschaft ‚Typ‘ undefinierter

lesen

Kann mir jemand sagen, was mir fehlt:

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

}) 

Antwort

0

cordovaNetwork anscheinend wirft immer Fehler, wenn Mit Webentwicklungs-Tools angezeigt, scheint es jedoch zu funktionieren, wenn die App erstellt und auf einem Gerät ausgeführt wird.

+0

Nicht nur $ cordovaNetwork, sondern fast alle Cordova Plugins. Übrigens sollten Sie ionic.native im Geschmack von ng-Cordova verwenden –

Verwandte Themen