방법

2017-09-11 1 views
0

내가 부모 구성 요소가 상위 구성 요소의 하위 구성 요소에서 함수를 호출하는 난 방법 onSubmit() {}방법

내가 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> 

() 내가 버튼을 클릭 할 때 함수는 parrent 구성 요소에서 확인합니다.

나는 아마도 @Input과 @Output decorator를 사용해야한다는 것을 알고 있지만 어떻게 적절하게 알지는 못한다. 자녀에게 템플릿의 참조를주고, 당신과 같이 그 함수를 호출 할 수 있습니다 :

+0

onSubmit 메서드가 app-document-data 구성 요소에 속해 있습니까? – Faly

+0

@Faly, 예 onSubmit 메소드는 app-document-data에 속합니다. –

답변

1

은 더 쉽게있다 당신의 부모 구성 요소에서

<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

나를 위해 작동하지 않는 것 같습니다. ** 정의되지 않은 속성 'save'를 읽을 수 없습니다 ** '편집 주문 #editOrderRef>' '' – Swoox

1

(내가 두 번째 버튼을 눌러 전화를 걸 것 같아요) :

자녀에
onClick(){ 
    this.buttonMessage = true; 

:

@Input() buttonMessage: boolean; 

및 ngOnChanges :

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

Swoox 잘 작동하지만, ngOnchanges()는 하나만 실행하지만 그 메소드는 ngOnChanges에서 buttonMessage = false로 설정하면 더 많이 실행해야한다. 부모에게 데이터를 보내기위한 출력 –

+1

값을 다시 false로 변경해야하기 때문입니다. ngOnChanges는 ** buttonMessage.currentValue === true ** 및 ** buttonMessage.previousValue === true **가 아닌 변경 작업을합니다. ** buttonMessage.previousValue === false **이어야합니다. * 늦게 답장을 보내 주셔서 죄송합니다 * – Swoox

+0

은 로컬 참조를 사용하는보다 간단한 방법으로 만 나타납니다.