我有一个 ionic 应用程序需要在离线模式下工作。启动我的应用程序时出现以下错误。为什么会发生这种情况 - 接下来我应该做什么?
我需要离线模式才能通过应用商店获取它。特别是我有一个需要离线禁用的谷歌地图位置下拉菜单。
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 {
...
}
}
}
}])
最佳答案
.factory('ConnectivityMonitor', ['$ionicPopup', function($rootScope, $cordovaNetwork, $ionicPopup){
您已将 $ionicPopup
映射到 $rootScope
。
将所有内容作为字符串注入(inject)数组中,或者只编写一个函数,如下所示:
.factory("ConnectivityMonitor", ["$rootScope","$cordovaNetwork", "$ionicPopup", function($rootScope,$cordovaNetwork, $ionicPopup){...}]);
或
.factory("ConnectivityMonitor", function($rootScope,$cordovaNetwork, $ionicPopup));
关于javascript - 未捕获的类型错误 : $rootScope. $on 不是连接工厂中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40910004/