Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
Cordova 从.run中的eventlistener调用控制器中的函数_Cordova_Ionic Framework_Phonegap Plugins_Ionic Popup - Fatal编程技术网

Cordova 从.run中的eventlistener调用控制器中的函数

Cordova 从.run中的eventlistener调用控制器中的函数,cordova,ionic-framework,phonegap-plugins,ionic-popup,Cordova,Ionic Framework,Phonegap Plugins,Ionic Popup,使用Ionic v1,我试图在我的app.run中的事件侦听器触发时调用控制器中的函数。该事件由检测耳机插孔变化的Cordova(Phonegap)插件创建 我一定是做错了什么,因为我找不到有效的解决办法。以下是我的例子: (function() { var app = angular.module('mymodule', ['ionic']); app.run(function($ionicPlatform) { $ionicPlatform.ready(functi

使用Ionic v1,我试图在我的app.run中的事件侦听器触发时调用控制器中的函数。该事件由检测耳机插孔变化的Cordova(Phonegap)插件创建

我一定是做错了什么,因为我找不到有效的解决办法。以下是我的例子:

(function() {
 var app = angular.module('mymodule', ['ionic']);
    app.run(function($ionicPlatform) {
        $ionicPlatform.ready(function() {
           if(window.HeadsetDetection){
                /*Monitor for changes in the headphone jack*/
                document.addEventListener('deviceready', function() {
                  window.HeadsetDetection.registerRemoteEvents(function(status){
                    // *HERE* is where I want to call or somehow trigger 
                        an action in my controller
                 });
                }, false);
              }
        });
  });

当感应到耳机插孔时,我正试图关闭控制器中创建的ionic弹出窗口

您正在从
定义事件。运行应用程序的一部分

因此,;与控制器通信;您需要使用: -应用程序上的全局变量($rootScope)在控制器中被监视:这是一个丑陋的解决方案;我不建议这样做 -在应用程序中的事件上广播/播放:这是干净的解决方案

你需要;当您检测到要向应用程序广播新闻的事件时:

$rootScope.$broadcast('headphones-Updated');
在你的控制器内;您现在只需观看以下活动:

$scope.$on('headphones-Updated', function(event, args) {


});

另一个解决方案是在控制器中设置事件侦听器

您使用什么插件进行耳机检测?是:是的,我试过了,但是我得到了:uncaughtreferenceerror:$rootScope未定义您应该注入$rootScope。run(函数($ionicPlatform,$rootScope){谢谢!我对Ionic/Angular相当陌生。