2017-01-25 8 views
3

私はOutputイベントと[boolean]ディレクティブがあります。私は、コンポーネントのコードからではなくビューで、このイベントをサブスクライブしたいAngular2コンポーネントコードでイベントを購読するにはどうすればよいですか?

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

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

そして、私の見解では。

これを行う方法はありますか?

答えて

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

"シェア"はどういう意味ですか? –

+0

複数のディレクティブから同じイベントを発生させたい(そして一度購読する)のは、 'mycustomevent'のような同じ名前を使用するだけで十分ですか? – naomi

関連する問題