Conditional EventListener



我只是想知道是否有一种方法可以定义条件事件侦听器,即只有在满足某些条件的情况下才能侦听事件。

我想我是在要求一种非正统的东西,或者有一种方式已经存在,但我没有注意到。

示例:

'lastRepeat'是当ng重复结束时由指令发出的事件。

app.controller('ctrl',function($scope){
  $scope.$on('lastRepeat', callback);  // Here the callback will be called every time lastRepeat event is emitted by the directive 
});

但我想要的是这样的东西(这就是我所想的,解决方案不需要使用相同的方法):

app.controller('ctrl',function($scope){
  function foo(){
    if(bool)
      $scope.$on('lastRepeat', callback); // Problem listening like this is that a listener is created everytime foo is called and condition is met and hence we end up having multiple listeners
  }
)};

基本上,我想避免这种多次创建监听器的情况。有没有一种方法可以像存储变量一样存储这个侦听器,并且只有在满足某些条件时才侦听。

怎么样:

app.controller('ctrl', function($scope) {
  var condition = false;
  var callback = function () {};
  $scope.$on('lastRepeat', function() {
    if (!condition) return;
    callback();    
  });
});

相关内容

  • 没有找到相关文章

最新更新