Angular $ rootScope init。 (Angular + Phonegap)

时间:2015-07-21 17:27:03

标签: javascript android angularjs cordova phonegap-plugins

尝试在phonegap中创建Android应用程序,使用android。

angular.module('myModule').config(['$rootScope', function($rootScope) {
    $rootScope.internet = { status: 0, type: 'none'};
    document.addEventListener("offline", function(){
        $rootScope.internet.status = 0;
        $rootScope.internet.type = navigator.connection.type;
    }, false);
    document.addEventListener("online", function(){
        $rootScope.internet.status = 1;
        $rootScope.internet.type = navigator.connection.type;
    }, false);
  }]);

我只想更改全局值,当navigator.connection更改或上线/离线时。

或者我如何将watch绑定到此navigator.connection全局变种

1 个答案:

答案 0 :(得分:0)

  

您无法在角度应用的配置阶段内使用$rootScope,因为它确实在run块中创建,该块在.config块结束后立即运行。

它可以从角run阶段获得。您可以将此代码块放在运行阶段。

您可以使用函数并在每个摘要上返回navigator.connection值。

<强>代码

angular.module('myModule').run(['$rootScope', function($rootScope) {
    $rootScope.internet = { status: 0, type: 'none'};
    document.addEventListener("offline", function(){
        $rootScope.internet.status = 0;
        $rootScope.internet.type = navigator.connection.type;
    }, false);
    document.addEventListener("online", function(){
        $rootScope.internet.status = 1;
        $rootScope.internet.type = navigator.connection.type;
    }, false);
    $rootScope.$watch(function(){
       return navigator.connection;
    }, function((newVal, oldVal){
       console.log(newVal)
    })
}]);