【问题标题】:AngularJS - Event fired only onceAngularJS - 事件只触发一次
【发布时间】:2014-10-06 10:10:51
【问题描述】:

我在第一个控制器中得到了这个:(在 ng-mouseover 上执行)

$scope.overMenu = function() {
    $rootScope.$broadcast('overMenu');
    console.log('overMenu');
};

这是第二个:

$scope.$on('overMenu', $scope.overMenu());
$scope.overMenu = function()
{
    console.log('on overMenu');
    //gridLayoutPlugin.updateGridLayout();
};

但是我的事件只被触发或捕获一次,我不明白为什么......

【问题讨论】:

    标签: angularjs events broadcast


    【解决方案1】:

    解决了!

    我从头开始,并将我的 $scope.$on 放在控制器的末尾,我不记得了,但也许我在我想调用的函数之前声明了它......

    【讨论】:

      【解决方案2】:

      事件处理程序应该是一个函数引用:

      $scope.$on('overMenu', $scope.overMenu);
      

      当你在函数名后面加上括号时,你会立即调用它。您要做的是提供对事件发生后要调用的函数的引用。

      【讨论】:

      • 嗨,即使我尝试这个:$scope.$on('overMenu', console.log('on overMenu'));它仍然只工作一次。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-15
      • 2011-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多