2017-09-11 12 views
0

I親成分を有する親コンポーネント内の子コンポーネントから関数を呼び出すために、私は方法 をonSubmit(){}どのよう

IのをonSubmitを呼び出すために質問を有するを有する子コンポーネントで

<div md-dialog-content> 
    <div class="section-top"> 
    <p id="title" style="float:left;">Adding Dockument</p> 
    <div md-dialog-actions style="float:right;"> 
     <button class="edm-button inline" md-button (click)="onNoClick()" tabindex="-1">Cancel</button> 
     <button class="edm-button inline" md-button (click)="onClick()" tabindex="-1">Confirm</button> 
    </div> 
    </div> 
    <div> 
    <app-document-data [buttonMessage]="buttonMessage"></app-document-data> 
    </div> 
</div> 

()私はボタンをクリックすると、パラレルコンポーネントで確認を行います。

私はおそらく@Inputと@Outputデコレータを使用すべきであることを知っていますが、どのように正しく適切かわかりません。

+0

onSubmitメソッドはapp-document-dataコンポーネントに属していますか? – Faly

+0

@Faly、はいonSubmitメソッドは、app-document-dataに属します –

答えて

1

でも簡単にあります:あなたの子供のテンプレートの参照を与え、あなたはそうのようにその機能を呼び出すことができます。あなたの親コンポーネントで(私は2番目のボタンが電話をかけるだろうと思います)

<div md-dialog-content> 
    <div class="section-top"> 
    <p id="title" style="float:left;">Adding Dockument</p> 
    <div md-dialog-actions style="float:right;"> 
     <button class="edm-button inline" md-button (click)="onNoClick()" tabindex="-1">Cancel</button> 
     <button class="edm-button inline" md-button (click)="appDD.onSubmit()" tabindex="-1">Confirm</button> 
    </div> 
    </div> 
    <div> 
    <app-document-data #appDD [buttonMessage]="buttonMessage"></app-document-data> 
    </div> 
</div> 
+0

これは彼の質問に対する答えがコメントとして投稿できないより多くの提案です。 – Swoox

+0

さて、yourslefを試してコメントにコードを投稿してください! – trichetriche

+0

私のために働いていないようです。 **未定義の '保存' プロパティを読み取ることができません** '<編集次#editOrderRef>' '<ボタンクラスは= "ボタン-成功"(クリック)= "editOrderRef.save()">'を保存 – Swoox

1

あなたの子供で
onClick(){ 
    this.buttonMessage = true; 

@Input() buttonMessage: boolean; 

とngOnChanges:

ngOnChanges(changes: any) { 
    if(changes.buttonMessage.currentValue){ 
    this.onSubmit(); 
+0

Swooxはうまく動作しますが、ngOnchanges()は1つだけ実行しますが、そのメソッドを実行する必要があります。ngOnChangesを試してみると、buttonMessage =親にデータを送信するための出力 –

+1

これは値を再度falseに変更する必要があるためです。 ngOnChangesは、** buttonMessage.currentValue === true **および** buttonMessage.previousValue === true **のような変更ではありません。 ** buttonMessage.previousValue === false **にする必要があります。 *遅れて返信して申し訳ありません* – Swoox

+0

は、ローカル参照を使用するより簡単な方法を見つける