Rumah > Soal Jawab > teks badan
P粉5510842952023-08-18 09:45:50
Adalah penting untuk mempertimbangkan skop dan konteks fungsi terikat.
Dalam kes anda, fungsi testFunc ditakrifkan dalam komponen Sudut anda, tetapi ia dipanggil daripada atribut onclick inline dalam rentetan HTML yang dijana. Ini boleh menyebabkan isu skop dan konteks.
Untuk mengikat acara dan fungsi dengan betul dalam HTML yang dijana secara dinamik dalam Angular, anda harus menggunakan mekanisme mengikat acara Angular.
Kemas kini fungsi returnButtonGroup anda untuk mengembalikan kod templat Sudut dan bukannya rentetan HTML mentah. Gunakan pengikatan peristiwa Angular (klik) untuk mengikat fungsi testFunc.
returnButtonGroup(key: string): string { return `<i (click)="testFunc('${key}')" class="fa fa-wrench"></i>`; }
Digunakan dalam HTML
<div [innerHTML]="dynamicHtml"></div>
Dalam component.ts anda, cipta sifat untuk menyimpan HTML yang dijana secara dinamik dan pastikan fungsi testFunc boleh diakses dalam komponen.
dynamicHtml: string; constructor() { this.dynamicHtml = this.returnButtonGroup('someKey'); // 使用适当的键调用你的方法 } testFunc(key: string) { console.log(key); }