我已为Ionic实施了Admob Pro plugin,并希望收听onAdDismiss
- EventListener。我现在遇到的问题是每次用控制器打开视图时都会将此EventListener添加到$scope
(需要使用EventListener)。我怎么能听一次然后删除呢?
myApp.run(function($ionicPlatform, $cordovaGoogleAnalytics, $cordovaDevice, $ionicHistory, $rootScope) {
var self = this;
$ionicPlatform.ready(function() {
document.addEventListener('onAdDismiss', function(e){
$rootScope.$broadcast("adDismissed");
});
}
});
myApp.controller('quizController', ['$scope', '$rootScope', '$cordovaAdMob', function($scope, $rootScope, $cordovaAdMob) {
var self = this;
this.checkAnswer = function(){ ... };
$rootScope.$on('adDismissed', function(){
self.checkAnswer(true);
});
}]);
编辑:我已尝试使用removeEventListener
,但这不起作用。
答案 0 :(得分:0)
通过调用侦听器函数,您将能够销毁它。如下:
var adDismissedListener = $rootScope.$on('adDismissed', function(){
self.checkAnswer(true);
adDismissedListener(); // Will destroy the listener.
});
https://docs.angularjs.org/api/ng/function/angular.bind
通过一些谷歌搜索,我发现你也可以在创建听众之前运行这段代码。
$rootScope.$$listeners.nameOfYourEvent=[];