Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS运行方法调用Cordova 3.4 navigator.globalization未定义_Angularjs_Cordova_Globalization_Navigator - Fatal编程技术网

AngularJS运行方法调用Cordova 3.4 navigator.globalization未定义

AngularJS运行方法调用Cordova 3.4 navigator.globalization未定义,angularjs,cordova,globalization,navigator,Angularjs,Cordova,Globalization,Navigator,我正在努力尝试在启动时检测设备语言设置。我正在使用AngularJS和Cordova 3.4。在AngularJs run方法中,我调用了一个调用navigator.globalization.getPreferredLanguage()的服务 问题是,在angularjs启动期间,navigator.globalization未定义。我在用角度的承诺等待魔鬼日活动。全球化插件在第二次点击应用程序时开始工作,所以我想这是一个时间问题。地理定位插件在启动时运行良好,所以我不明白为什么会发生这种情况

我正在努力尝试在启动时检测设备语言设置。我正在使用AngularJS和Cordova 3.4。在AngularJs run方法中,我调用了一个调用navigator.globalization.getPreferredLanguage()的服务

问题是,在angularjs启动期间,navigator.globalization未定义。我在用角度的承诺等待魔鬼日活动。全球化插件在第二次点击应用程序时开始工作,所以我想这是一个时间问题。地理定位插件在启动时运行良好,所以我不明白为什么会发生这种情况

AngularJS运行方法

angular.module('guiariumHtml5App', [
  'ngCookies',
  'ngResource',
  'ngSanitize',
  'ngRoute',
  'ngAnimate',
  'ui.bootstrap',
  'google-maps',
  'pascalprecht.translate'
])
  .run(function($log, GlobalizationService) {
    $log.info("App run");
    GlobalizationService.getPreferredLanguage();
  });
GlobalizationService.js

    'use strict';

    angular.module('guiariumHtml5App')
  .factory('GlobalizationService', function($log, CordovaService) {

    var serviceInstance = {
      getPreferredLanguage: function() {
        $log.info('getPreferredLanguage');
        CordovaService.navigator().then(function(navigator) {
          var onSuccess = function(language) {
            setTimeout(function() {
              alert(language.value);
            }, 0);

            //$translate.uses(language.value);
          };

          var onError = function() {
            setTimeout(function() {
              alert("Error getting language");
            }, 0);
          };
          $log.info(navigator);
          $log.info(navigator.language);
          $log.info(navigator.userLanguage);
          $log.info(navigator.globalization);

          // Navigator.globalization is undefined
          navigator.globalization.getPreferredLanguage(onSuccess, onError);
        });
      }
    };

    return serviceInstance;
  });
'use strict';

angular.module('guiariumHtml5App')
  .factory('CordovaService', function($q, $log) {
    var d = $q.defer();
    if(window.navigator) {
      $log.info('navigator found on window');
      d.resolve(window.navigator);
    }
    else {
      document.addEventListener('deviceready', function(evt) {
        $log.info('deviceready');
        d.resolve(navigator);
      });
    }

    return {
      navigator: function() {
        return d.promise;
      }
    };
  });
CordovaService.js

    'use strict';

    angular.module('guiariumHtml5App')
  .factory('GlobalizationService', function($log, CordovaService) {

    var serviceInstance = {
      getPreferredLanguage: function() {
        $log.info('getPreferredLanguage');
        CordovaService.navigator().then(function(navigator) {
          var onSuccess = function(language) {
            setTimeout(function() {
              alert(language.value);
            }, 0);

            //$translate.uses(language.value);
          };

          var onError = function() {
            setTimeout(function() {
              alert("Error getting language");
            }, 0);
          };
          $log.info(navigator);
          $log.info(navigator.language);
          $log.info(navigator.userLanguage);
          $log.info(navigator.globalization);

          // Navigator.globalization is undefined
          navigator.globalization.getPreferredLanguage(onSuccess, onError);
        });
      }
    };

    return serviceInstance;
  });
'use strict';

angular.module('guiariumHtml5App')
  .factory('CordovaService', function($q, $log) {
    var d = $q.defer();
    if(window.navigator) {
      $log.info('navigator found on window');
      d.resolve(window.navigator);
    }
    else {
      document.addEventListener('deviceready', function(evt) {
        $log.info('deviceready');
        d.resolve(navigator);
      });
    }

    return {
      navigator: function() {
        return d.promise;
      }
    };
  });
有人看到时间问题了吗