Cordova 从.run中的eventlistener调用控制器中的函数
使用Ionic v1,我试图在我的app.run中的事件侦听器触发时调用控制器中的函数。该事件由检测耳机插孔变化的Cordova(Phonegap)插件创建 我一定是做错了什么,因为我找不到有效的解决办法。以下是我的例子: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
(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相当陌生。