簡體   English   中英

角度2,孩子與父母之間以及與孩子之間的溝通

[英]Angular 2, child to parent and back to child communication

首先感謝您的寶貴時間。

我是Angular 2的新手,我試圖了解如何解決我遇到的這個問題。

組件結構:

<parent-component>
  <dynamic-button></dynamic-button>
  <dynamic-button></dynamic-button>
  ...
</parent-component>

子組件

export class DynamicButtonComponent {
  @Output() clicked: EventEmitter<any> = new EventEmitter<any>();

  loading: Boolean = false;
  handleClick(event: any) {
    this.loading = true;
    this.clicked.emit(event);
  }
};

當我單擊動態按鈕時,我正在向父級發送事件。 使用'loading'變量將在按鈕旁邊顯示一個微調框。 然后,父級進行API調用,當API調用完成后,我想從父級(最初發送事件)將道具發送回子級組件,以停止顯示微調器。

請告知什么是解決此問題的最好/最干凈的方法。 我曾想過要回調事件發射器,但我在StackOverflow中讀到它違反了Angular 2的原理

您可以使用OnChanges生命周期掛鈎在子組件上捕獲@Input更新以進行進度。

家長:

export class ParentComponent {
    finishedLoading: boolean = false;
    doApiWork(){
        ...
        finishedLoading = true;
    }
}

兒童:

export class DynamicButtonComponent implements OnChanges{
    @Input() loadingDone = false;

    ngOnChanges(){
        if(loadingDone){
           //Execute 
        }
    }
}

在視圖中綁定:

<parent-component>
  <dynamic-button [loadingDone]="finishedLoading"></dynamic-button>
  ...
</parent-component>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM