2014-01-17 2 views
0

Я использую:Как я могу трансляции и события с помощью AngularJS?

<body data-ng-keydown="$broadcast('keydown',$event)"> 

В моем контроллере (ребенок)

$scope.$on('keydown', function (event) { 

}) 

я ожидал увидеть, что событие содержало такой же, как $ события, но это не так. Например, $ event содержит поле keyCode, но событие нет. Что не так ?

Я также попытался это:

 $scope.callFunction = function (event) { 
      $scope.$broadcast('keydown', event) 
     } 

В любом случае это, кажется, когда KeyDown событие получить параметр в функции (событие) не совпадает с параметром отправленного в эфире.

ответ

2

Добавьте второй параметр в $ на обработчик так:

$scope.$on('keydown', function (event,myEvent) { 
console.log(myEvent); 
}) 

Это должно сделать это. Первое событие arg - это общий аргумент события, и вы передаете свой собственный параметр, чтобы он стал вторым.

Смежные вопросы