2017-12-07 18 views
2

アンギュラ5.子からデータを渡す親にモーダル

は、私はこの方法を使用していました。クリックされたとき: 1)親はこの子を閉じるべきです。 2)親は別のモーダルを表示する必要があります。

私の試み:子供(モーダル)は親にイベントを送信しますが、 3)親はその子供がdinamically作成されたので、<app-seleccion-servicio-component>タグをhtmlに含めませんでした。だから、親はどこから子どもたちから放出されたイベントを聞きますか?

期待される結果は次のとおりです。 4)子コンポーネント内のボタンをクリックします。 5)親がこの子を閉じます(モーダルウィンドウ)。 6)親は別のモーダルウィンドウを表示します。

7)私はこの時点で固執しています。私は親が、<app-seleccion-servicio-component>タグなしで放出されたイベントを聴くようにする方法を知らない。

よろしくお願いいたします。

+0

あなたのコンポーネントの(親)とあなたのモーダル(子供)のコードを追加してくださいすることができますか? – ShinDarth

+0

これを確認してください[**回答**](https://stackoverflow.com/questions/42808877/how-to-pass-selected-value-of-dropdown-from-popup-to-another-component-in-angula/42809562#42809562) – Aravind

+1

@ShinDarth、私の間違っていた: '@Output()myevent = new EventEmitter ();それは私のために働いた ' ;持つEventEmitter =新しい持つEventEmitter():' の代わりに: '公開イベント! よろしくお願いいたします。 –

答えて

1

あなたのコードを見ずに言うことはできませんが、あなたの子コンポーネントにEventEmitterを作成し、それを親から購読することができます。

例:https://plnkr.co/edit/b6qHpolJmUFy7dYvYpkJ?p=preview

/* CHILD COMPONENT */ 
    public event: EventEmitter<any> = new EventEmitter(); 

    triggerEvent() { 
    this.event.emit({data: 12345}); 
    } 

/* PARENT COMPONENT */ 
this.bsModalRef.content.event.subscribe(data => { 
    console.log('Child component\'s event was triggered', data); 
}); 
+0

こんにちは@IlyaSurmay、 'openModalWithComponent(){ this.bsModalRef = this.modalService.show(MyModalComponent); this.bsModalRef.content.title = 'モダールとコンポーネント'; this.bsModalRef.content.list = list; setTimeout(()=> { list.push( 'PROFIT !!!'); }、2000); this.bsModalRef.content.event.subscribe(data => { console.log( '子コンポーネントのイベントが発生しました:'、data); }); } ' 原因: ** ERRORの例外TypeError:プロパティを読み取ることができませんAppComponent.openModalWithComponent(app.component.ts:31)で、未定義 の '購読' ** –

+0

あなたが再生にplunkrを作成してもらえますか?これで子コンポーネントにEventEmitterが作成されていないようです – IlyaSurmay

+0

ここにはhttps:// embedがあります。plnkr.co/4dWyBzkPeLEumZECfvHg/ –

関連する問題