使用离子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) {
});
另一个解决方案必须在控制器中设置您的事件侦听器