AngularJS - 仅触发一次事件

时间:2014-10-06 10:10:52

标签: angularjs events broadcast

我在第一个控制器中得到了这个:(在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();
};

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

2 个答案:

答案 0 :(得分:1)

解决了!

我开始讨论所有内容并将我的$ scope。$ on在我的控制器的末尾,我不记得了,但也许我在我想要调用的函数之前宣布它...

答案 1 :(得分:0)

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

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

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