从.lun中的EventListener中调用控制器中的函数



使用离子V1,当我的app.run fires中的事件侦听器启动时,我试图在控制器中调用函数。该事件是由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);
              }
        });
  });

当感觉到耳机插孔时,我正在尝试关闭控制器中创建的离子弹出窗口。

您正在从Angular应用程序的.run定义您的事件。

因此;与控制器进行通信;您需要使用: - 您的应用程序中观看的应用程序上的全局变量($ rootscope(:这是一个丑陋的解决方案;我不推荐 - 在您的应用程序中广播/在活动中:这是干净的解决方案

您需要;当您检测到活动以广播到您的应用程序时,新闻:

$rootScope.$broadcast('headphones-Updated');

在您的控制器内;您现在有Juste来参加活动:

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

});

另一个解决方案必须在控制器中设置您的事件侦听器

相关内容

  • 没有找到相关文章