Pengenalan:
Dalam aplikasi Sudut, keperluan untuk memasukkan skrip luaran boleh timbul. Walau bagaimanapun, menambah
Pemuatan Skrip Dinamik:
Untuk memuatkan secara dinamik skrip, kita boleh menggunakan langkah berikut:
Kod Contoh:
Di bawah ialah contoh pelaksanaan stor dan perkhidmatan skrip:
interface Scripts { name: string; src: string; } // Script store with sample script definitions export const ScriptStore: Scripts[] = [ { name: 'filepicker', src: 'https://api.filestackapi.com/filestack.js' }, { name: 'rangeSlider', src: '../../../assets/js/ion.rangeSlider.min.js' } ]; @Injectable() export class ScriptService { private scripts: any = {}; constructor() { ScriptStore.forEach((script: any) => { this.scripts[script.name] = { loaded: false, src: script.src }; }); } load(...scripts: string[]) { var promises: any[] = []; scripts.forEach((script) => promises.push(this.loadScript(script))); return Promise.all(promises); } loadScript(name: string) { return new Promise((resolve, reject) => { // Check if script is already loaded if (this.scripts[name].loaded) { resolve({ script: name, loaded: true, status: 'Already Loaded' }); } else { let script = document.createElement('script'); script.type = 'text/javascript'; script.src = this.scripts[name].src; script.onload = () => { this.scripts[name].loaded = true; resolve({ script: name, loaded: true, status: 'Loaded' }); }; script.onerror = (error: any) => resolve({ script: name, loaded: false, status: 'Loaded' }); document.getElementsByTagName('head')[0].appendChild(script); } }); } }
Penggunaan:
Dalam komponen atau perkhidmatan di mana anda ingin memuatkan skrip secara dinamik, menyuntik ScriptService. Kemudian, dalam kaedah, gunakan kaedah pemuatan seperti ini:
this.script.load('filepicker', 'rangeSlider').then(data => { console.log('script loaded ', data); }).catch(error => console.log(error));
Dalam contoh ini, kedua-dua skrip pemetik fail dan rangeSlider akan dimuatkan secara dinamik. Anda kini boleh mengkonfigurasi ScriptStore untuk memuatkan skrip sama ada daripada CDN atau folder setempat mengikut keperluan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memuatkan Skrip Secara Dinamik dalam Sudut Menggunakan Perkhidmatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!