2014-10-06 64 views
1

我在第一控制器得到这个(在NG-鼠标悬停执行)AngularJS - 事件只发射一次

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

而这第二个:

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

但我的事件被解雇或钓到只有一次,我不明白为什么...

回答

0

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

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

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

+0

喜,即使我试试这个: $ scope。$ on('overMenu',console.log('overMenu')); 它仍然只能使用一次。 – matt2mi 2014-10-06 11:54:24

0

解决!

我开始了一切,把我的$范围。在我的控制器年底美元,我不记得,但也许我我想调用函数之前宣布它...