2017-05-18 2 views
1

Angular 2では、TypescriptのViewChildを使用して、メソッドハンドラにEventEmitterをどのように割り当てることができますか?角2; HTMLではなくTypescriptでViewChildを使用してEventEmitterにメソッドを割り当てますか?

my.component.html

<some-component [someProperty]="myProperty" (onSomeEvent)="myMethod($event)></some-component> 

my.component.ts私が対処することを好むだろうどのように

export class MyComponent { 
    public myProperty: string; 
    ... 
    public myMethod(event: any) { 
     ... //handle event 
    } 
    ... 
} 

:HTMLを使用して持つEventEmitterからのイベントの処理

イベント(Typescript):

my.component.html

<some-component #someComponent></some-component> 

my.component.ts

私は再び問題に出くわしたと偶然に自分の質問を再発見したときに一ヶ月後にこれを考え出した
export class MyComponent { 
    @ViewChild('someComponent') someComponent: SomeComponent; 
    ngOnInit() { 
     this.someComponent.someProperty = myProperty; 
     this.someComponent.onSomeEvent = ? <-- How do I assign EventEmitter? 
    } 
    public myProperty: string; 
    ... 
    public myMethod(event: any) { 
     ... //handle event 
    } 
    ... 
} 

答えて

3

検索。

AngularのEventEmittersはObservableを購読しているだけなので、Observableを購読しているので、Observableを利用しています。コンポーネントのtypescriptにハンドラを割り当てる場合は、それを行うこともできます。

export class MyComponent { 
    @ViewChild('someComponent') someComponent: SomeComponent; 
    ngOnInit() { 
     this.someComponent.someProperty = myProperty; 
     this.someComponent.onSomeEvent.subscribe(event => this.myMethod(event)); 
    } 
    public myProperty: string; 
    ... 
    public myMethod(event: any) { 
     ... //handle event 
    } 
    ... 
} 
:上記の私の例から

関連する問題