angularjs - 触发phonegap deviceready 事件后设置$rootScope 变量

标签 angularjs cordova

在触发 deviceready 事件后,有什么方法可以在我的 Angular 应用程序中设置 $rootScope 变量吗?

var application = {
// Application Constructor
initialize: function() {
    this.bindEvents();
},

// Bind any events that are required on startup. Common events are:
// 'load', 'deviceready', 'offline', and 'online'.
bindEvents: function() {
    document.addEventListener('deviceready', this.onDeviceReady, true);
},
// deviceready Event Handler
onDeviceReady: function() {
    //set angular app $rootScope variable
}

};

最佳答案

要在 deviceready 事件处理程序的 $rootScope 中设置属性,请确保将其包装在 $apply 方法调用中,因为 deviceready 事件发生在 AngularJS 之外。这是一个例子:

angular.module('myapp').run(['$rootScope', function($rootScope) {
    document.addEventListener('deviceready', function() {
        $rootScope.$apply(function() {
            $rootScope.myVariable = "variable value";
        });
    });
});

关于angularjs - 触发phonegap deviceready 事件后设置$rootScope 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20204654/

相关文章:

angularjs - ng-repeat 中的 Track By 抛出 "Token ' track' 是一个意外标记”

html - 运行 AngularJS ES6 时出错

php - 将本地数据库 sqlite 与生产服务器 (MySQL) 同步的最佳方法是什么?

angularjs - 如何向 Ionic/Phonegap 项目添加测试?

ios - Cordova katzer 插件后台模式不适用于 iOS-9

cordova - Android的Phonegap启动画面: not stretched or 9patch

android - map 上不需要的灰色区域

javascript - 矩形删除并放置错误 net::ERR_NAME_NOT_RESOLVED

javascript - NG-重复动画在 IE11 中不起作用

javascript - 当我应该昏倒时传递选项