Saya telah membuat komponen anak yang memiliki metode yang ingin saya panggil.
Ketika saya memanggil metode ini, itu hanya mengaktifkan console.log()
baris, itu tidak akan mengatur test
properti ??
Di bawah ini adalah aplikasi Angular mulai cepat dengan perubahan saya.
Induk
import { Component } from '@angular/core';
import { NotifyComponent } from './notify.component';
@Component({
selector: 'my-app',
template:
`
<button (click)="submit()">Call Child Component Method</button>
`
})
export class AppComponent {
private notify: NotifyComponent;
constructor() {
this.notify = new NotifyComponent();
}
submit(): void {
// execute child component method
notify.callMethod();
}
}
Anak
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'notify',
template: '<h3>Notify {{test}}</h3>'
})
export class NotifyComponent implements OnInit {
test:string;
constructor() { }
ngOnInit() { }
callMethod(): void {
console.log('successfully executed.');
this.test = 'Me';
}
}
Bagaimana cara mengatur test
properti juga?
angular
typescript
angular-components
shammelburg.dll
sumber
sumber
Jawaban:
Anda dapat melakukan ini dengan menggunakan
@ViewChild
untuk info lebih lanjut, periksa tautan inikomponen anak
komponen induk
komponen anak
komponen induk
sumber
Input
properti: sebuah observable di mana anak bereaksi dengan memanggil fungsi internalnya sendiri . Lihat jawaban pengguna6779899Ini Berhasil untuk saya! Untuk Angular 2, Panggil metode komponen anak dalam komponen induk
Parent.component.ts
Child.component.ts
sumber
ChildComponent
olehChildVM
Menurut saya cara paling mudah adalah menggunakan Subjek. Dalam kode contoh di bawah ini, anak akan diberi tahu setiap kali 'tellChild' dipanggil.
Parent.component.ts
Parent.component.html
Child.component.ts
Contoh kerja di Stackblitz
sumber
Angular - Panggil Metode Komponen Anak di Templat Komponen Induk
Anda memiliki ParentComponent dan ChildComponent yang terlihat seperti ini.
Saat disajikan, tampilannya seperti ini:
Saat pengguna fokus pada elemen masukan ParentComponent, Anda ingin memanggil metode doSomething () ChildComponent.
Cukup lakukan ini:
sumber
@ViewChild('appChild', { static: false }) appChild: ElementRef<HTMLElement>;
dan penggunaan selanjutnyathis.appChild.doSomething()
Jawaban pengguna6779899 rapi dan lebih umum Namun, berdasarkan permintaan Imad El Hitti, solusi ringan diusulkan di sini. Ini bisa digunakan ketika komponen anak terhubung erat ke satu induk saja.
Parent.component.ts
Parent.component.html
Child.component.ts
sumber
Perhatikan contoh berikut,
Baca selengkapnya tentang @ViewChild di sini.
sumber
Saya memiliki situasi yang tepat di mana komponen Induk memiliki file
Select
elemen dalam formulir dan saat mengirimkan, saya perlu memanggil metode Komponen Anak yang relevan sesuai dengan nilai yang dipilih dari elemen pilih.Parent.HTML:
Parent.TS:
Child.TS:
Semoga ini membantu.
sumber