angular - Memanggil metode dari komponen anak jika induk memiliki dua anak dari komponen yang sama


https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#parent-to-view-child

jadi menurut dokumen "resmi", pemanggilan metode dari komponen anak bisa dilakukan di dalam Kelas induk menggunakan:

@ViewChild(CountdownTimerComponent)
private timerComponent: CountdownTimerComponent;

dan melakukan

timerComponent.methodName()

Jadi bagaimana jika komponen induk menggunakan dua CountDownTimerComponent dan hanya ingin memanggil timerComponentNumber1.methodName()?

Dengan asumsi pengembang ingin memanggil metode di dalam ParentClass dan bukan dari template

Jawaban #1

Anda perlu menggunakan @ViewChildren sebagai gantinya

@ViewChildren(CountdownTimerComponent)
private timerComponents: QueryList<CountdownTimerComponent>;

Anda dapat melakukan iterasi atas timerComponents dan memanggil metode yang Anda inginkan; atau melakukan sesuatu seperti ini:

this.timerComponents.toArray()[0].someMethod();

Berikut adalah referensi ke dokumentasinya.

Artikel terkait