2016-01-21 5 views
7

Я пытаюсь передать параметры через @Output, но запущенная функция просто получает «undefined». Может кто-нибудь, пожалуйста, покажет мне способ передать параметры через EventEmitter @Output? Для примера:Угловые 2 @ Параметры выходного сигнала

var childCmp = ng.core.Component({ 
      selector:'child-cmp', 
      outputs: ['myEvent'] 
      }).Class({ 
       constructor: function(){ 
          this.myEvent = new ng.core.EventEmitter(); 
          this.myEvent.emit(false); 
          } 
      }); 
var parentCmp = ng.core.Component({ 
       selector:'parent-cmp', 
       template:'<child-cmp (myEvent)="invoke()"'></child-cmp>', 
       directives: [childCmp] 
      }).Class({ 
       constructor:function(){}, 
       invoke: function(flag){ 
        // here flag is undefined!! 
       } 
      }); 
+1

Может ли вы поделиться каким-то кодом? Что отправляется при вызове EventEmitter.emit? – Shikloshi

+0

См. Также https://angular.io/docs/ts/latest/api/core/Output-var.html –

+1

Я добавил пример для своего вопроса –

ответ

6

Вы Шоуда использовать следующие для получения значения снабженное события:

<child-cmp (myEvent)="invoke($event.value)"'></child-cmp>' 

Таким образом invoke метод вашего childCmp получит в качестве параметра значение вы предоставляете при испускании myEvent изготовленный под заказ мероприятие.

Надеется, что это помогает, Тьерри

+2

$ event.value не работал, но $ event сделал работа !! Спасибо!!!! –

+1

Это ** $ event ** действительно – tibbus

5

Thierry ответа почти правильно, вы должны передать $ события в функции вывода:

<child-cmp (myEvent)="invoke($event)"'></child-cmp>' 
+1

В будущем вы, вероятно, должны просто отредактировать ответ – adamdport

+0

Действительно, я не знал этого времени, был 1 год назад ¯ \ _ (ツ) _/¯ – tibbus

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