我有一个需要在离线模式下工作的离子应用。我启动应用程序时出现以下错误。为什么会这样 - 我接下来应该怎么做?
我需要离线模式才能通过应用商店获取它。特别是我有一个谷歌地图位置下拉,需要离线禁用。
services.js:392 Uncaught TypeError: $rootScope.$on is not a function
这是我的代码。
})*/
.factory('ConnectivityMonitor', ['$ionicPopup', function($rootScope, $cordovaNetwork, $ionicPopup){
return {
isOnline: function(){
if(ionic.Platform.isWebView()){
return $cordovaNetwork.isOnline();
} else {
return navigator.onLine;
}
},
isOffline: function(){
if(ionic.Platform.isWebView()){
return !$cordovaNetwork.isOnline();
} else {
return !navigator.onLine;
}
},
startWatching: function(){
if(ionic.Platform.isWebView()){
$rootScope.$on('$cordovaNetwork:online', function(event, networkState){
console.log("went online");
});
$rootScope.$on('$cordovaNetwork:offline', function(event, networkState){
console.log("went offline");
$ionicPopup.alert({
title: 'No Internet Connection',
content: 'This app requires an internet connection.'
})
.then(function() {
//ionic.Platform.exitApp();
});
});
}
else {
...
}
}
}
}])
答案 0 :(得分:2)
.factory('ConnectivityMonitor', ['$ionicPopup', function($rootScope, $cordovaNetwork, $ionicPopup){
您已将$ionicPopup
映射到$rootScope
。
在数组中将所有内容作为字符串注入,或者只编写一个函数,如下所示:
.factory("ConnectivityMonitor", ["$rootScope","$cordovaNetwork", "$ionicPopup", function($rootScope,$cordovaNetwork, $ionicPopup){...}]);
或
.factory("ConnectivityMonitor", function($rootScope,$cordovaNetwork, $ionicPopup));