2014-10-06 67 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

解決!

我開始了一切,把我的$範圍。在我的控制器年底美元,我不記得,但也許我我想調用函數之前宣佈它...