Prima di tutto, ti consiglio di ascoltare online/offline events.
si può fare in questo modo in AnguarJS:
var app = module('yourApp', []);
app.run(function($window, $rootScope) {
$rootScope.online = navigator.onLine;
$window.addEventListener("offline", function() {
$rootScope.$apply(function() {
$rootScope.online = false;
});
}, false);
$window.addEventListener("online", function() {
$rootScope.$apply(function() {
$rootScope.online = true;
});
}, false);
});
NOTA: sto avvolgendo la modifica della variabile di portata radici in $apply
metodo per notificare angolare che qualcosa era cambiato.
Dopo di che è possibile:
In controlller:
$scope.$watch('online', function(newStatus) { ... });
nel markup HTML:
<div ng-show="online">You're online</div>
<div ng-hide="online">You're offline</div>
Ecco un Plunker di lavoro: http://plnkr.co/edit/Q3LkiI7Cj4RWBNRLEJUA?p=preview
Altro soluzione potrebbe essere quella trasmissione evento online/offline. Ma in questo caso è necessario inizializzare lo stato corrente al momento del caricamento e quindi iscriversi all'evento.
fonte
2013-04-26 18:12:08
Vedere anche http://stackoverflow.com/questions/15574580/how-can-i-detect-with-angularjs-if-the-app-is-offline – Mawg