परिचय:
एंगुलर अनुप्रयोगों में, बाहरी स्क्रिप्ट को शामिल करने की आवश्यकता है ऊठ सकना। हालाँकि,
डायनामिक स्क्रिप्ट लोड हो रहा है:
डायनामिक रूप से लोड करने के लिए स्क्रिप्ट, हम निम्नलिखित कदम उठा सकते हैं:
उपयोग:
उस घटक या सेवा में जहां आप स्क्रिप्ट को गतिशील रूप से लोड करना चाहते हैं, स्क्रिप्ट सर्विस इंजेक्ट करें। फिर, एक विधि के भीतर, लोड विधि को इस तरह शुरू करें:this.script.load('filepicker', 'rangeSlider').then(data => { कंसोल.लॉग ('स्क्रिप्ट लोडेड', डेटा); }).catch(error => console.log(error));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); } }); } }इस उदाहरण में, फाइलपिकर और रेंजस्लाइडर स्क्रिप्ट दोनों को गतिशील रूप से लोड किया जाएगा। अब आप आवश्यकतानुसार सीडीएन या स्थानीय फ़ोल्डर से स्क्रिप्ट लोड करने के लिए स्क्रिप्टस्टोर को कॉन्फ़िगर कर सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3