Fungsi panggilan dalam rentetan HTML dinamik
P粉132730839
2023-08-17 10:33:17
<p>Saya mempunyai struktur dalam aplikasi saya di mana saya menjana html dinamik. Saya menambah ahli html pada setiap tindakan pengguna yang mempunyai butang. Saya ingin menetapkan fungsi saya yang ditentukan kepada tindakan (onclick) butang ini. Walau bagaimanapun, apabila saya mengklik butang dalam rentetan html yang saya hasilkan dengan cepat, saya mendapat ralat bahawa fungsi yang berkaitan tidak ditentukan. apa yang saya buat?
Fungsi saya;</p>
<pre class="brush:php;toolbar:false;">returnButtonGroup(key: string):string{
kembalikan '<i onclick="testFunc('' +key + '');" class="fa-wrench"></i>'
}
testFunc(kunci: rentetan){
console.log(kunci);
}</pre>
<p>Saya menambah teg i dengan menggunakan innerHtml dalam setiap tindakan pengguna. Sebarang cadangan tentang perkara yang boleh saya lakukan? Terima kasih. </p>
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.
Digunakan dalam HTML
Dalam component.ts anda, cipta sifat untuk menyimpan HTML yang dijana secara dinamik dan pastikan fungsi testFunc boleh diakses dalam komponen.