javascript - 未捕获的类型错误 : $rootScope. $on 不是连接工厂中的函数

标签 javascript angularjs plugins ionic-framework

我有一个 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/

相关文章:

javascript - 居中未知大小的绝对定位图像

Android Unity 插件 - 未找到类异常

jquery - Jquery UI 是否取代了 Jquery 中的任何功能?

javascript - 删除传单中的 GeoJson 颜色

javascript - 如何从 selectOneMenu 项填充 inputText?

javascript - 为什么 shouldComponentUpdate 说当前的 props 是 React 中的新 props?

javascript - 替换 javascript 或 angularjs 中字符串中某些字符的存在

javascript - 通过 Angular 资源服务读取 JSON

html - 有没有浏览器工具可以快速浏览网站的标题信息?

javascript - 如何修复更改浏览器选项卡时不同步的可视化问题?