2017-02-15 5 views
1

Modalコンポーネント(ModalControllerで作成)内から放出されたローカルイベントを無視することなくキャッチし、グローバルEventsまたはサービスを使用する必要はありませんか?Ionic2:Modalコンポーネント(ModalControllerから作成)内のイベントを捕捉する方法は?

これを行う方法は、listenRendererから使用することですが、この場合はコンポーネントインスタンスへの適切な参照を取得する方法がわかりません。

MyComponent.ts

... 
export class MyComponent { 
    @Output() myAwesomeEvent = new EventEmitter<string>(); 

    fireEvent() { 
    this.myAwesomeEvent.emit('payload'); 
    } 
} 

Parent.ts

... 
const modal = this.modalCtrl.create(MyComponent); 
// how do I catch 'myAwesomeEvent' emitted from within MyComponent? 
... 
+1

私はあなたのモーダル変数は、インスタンスのプロパティを持つことになりますし、それから、あなたは私が必要とまさにmisha130 @ modal.instance.myAwesomeEvent.subscribe(... – misha130

+0

ようmyAwesomeEventを得ることができると思います。セットアップ – JoshuaDavid

+0

ヒント: 'modal.didEnter'を使ってハンドラを設定し、' instance'メンバが利用可能であることを確認してください[詳細については、ViewControllerのドキュメントを参照してください](http://ionicframework.com/docs/ v2/api/navigation/ViewController /) – JoshuaDavid

答えて

1

アクセスモーダルでinstanceプロパティ。私の頭の上オフ

const modal = this.modalCtrl.create(MyComponent); 
modal.didEnter.subscribe(() => { 
    modal.instance.myAwesomeEvent.subscribe(....) 
}); 
関連する問題