2017-01-25 3 views
3

У меня есть [boolean] директиву с Output события:Angular2 Как подписаться на событие в Компонентном коде?

@Output() booleanChanged = new EventEmitter(); 
... 
this.booleanChanged.emit(value); 

И на мой взгляд:

<input type="checkbox" [boolean] (booleanChanged)="updateBoolean()"/> 

Я хотел бы подписаться на это событие из кода компонента, а не с точки зрения ,

Есть ли способ сделать это?

ответ

1

@Output() события могут использоваться только (myoutput)="..." креплениями.

Вы можете создать обычное событие DOM. DOM событие пузырь и может быть услышан от родительских компонентов

class BooleanDirective { 
    constructor(private elRef:ElementRef){} 

    emitEvent() { 
    final event = new CustomEvent('mycustomevent', {detail: 'abc', bubbles : true}); 
    this.elRef.nativeElement.dispatchEvent(event) 
    } 
} 
@HostListener('mycustomevent', ['$event']) 
myCustomEventHandler(event) { 
    ... 
} 

Смотрите также angular2 manually firing click event on particular element

+0

Есть ли способ разделить это особое событие в нескольких директивах? – naomi

+0

Что вы имеете в виду с «share» точно? –

+0

Я хочу запустить одно и то же событие из нескольких директив (и подписаться один раз), достаточно ли просто использовать то же имя, что и «mycustomevent»? – naomi

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