我正在尝试使用 angularjs 创建一个 cordova 应用程序。我正在使用本地存储以及首次加载后存储的所有数据。 如果应用程序在没有互联网的情况下加载,我需要从本地存储加载数据,否则需要从互联网加载。
onDeviceReady: function() {
isOffline = 'onLine' in navigator && !navigator.onLine;
}
我会在这里得到这个状态,但我的问题是, 我的 Angular Controller 在
之前开始加载数据document.addEventListener('deviceready', this.onDeviceReady, false);
触发此事件, 如何使用 Angular JS 和 Cordova 应用线上线下逻辑?
最佳答案
您可以在 navigator && !navigator.onLine; 中的 'onLine' 上使用
$watch
,它将在每个摘要周期进行评估,并在以下情况下调用 watch 函数:值发生变化。
代码
$scope.$watch(function(){
return 'onLine' in navigator && !navigator.onLine;
}, function(newValue, oldValue){
if(newValue) {//it means user is online
//do code here
}
});
关于javascript - 数据加载cordova之前检查是否在线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31271648/