लोड मेरे ऐप में गतिशील भागों कि स्ट्रिंग है जो की तरह दिखता है के रूप में डेटाबेस से लोड किए गए हैं कर रहे हैं:RequireJS स्ट्रिंग
"define(['dependency1', 'dependency2'], function(){"+
" // function body" +
"})"
सिर्फ एक सरल requireJS मॉड्यूल है जो एक स्ट्रिंग के रूप,। मैं एसिंक आवश्यकता कॉल का उपयोग कर ऊपर लिपि को आलसी लोड करना चाहता हूं। इसलिए, मेरी मुख्य आवश्यकता जेएस स्क्रिप्ट इस तरह दिखती है:
require(["jquery"], function($){
$(document).ready(function(){
// logic to load specific script from database
var scriptString = functionToLoadTheStringAbove();
// ideally i would like to call it like this
require([scriptString], function(){
// scriptString, dependency1, dependency2 are loaded
}
});
});
मैं उन स्ट्रिंग को जरूरी जेएस में कैसे लोड करूं? मुझे टेक्स्ट प्लगइन के बारे में पता है, लेकिन यह केवल फाइलों से लोड करने की अनुमति देता है। मैंने eval कोशिश की लेकिन यह निर्भरता को सही ढंग से हल नहीं करता है। मैं बस अपना समाधान यहाँ पोस्ट मामला किसी की जरूरत में
require(["jquery"], function($){
$(document).ready(function(){
// logic to load specific script from database
var scriptString = functionToLoadTheStringAbove();
var olddefine = define; // require js define
var runme; // capture function
define = function (args,func){
runme = func;
}
eval(scriptString);
runme(); // run the function in current scope
define = olddefine; // restore requirejs function
// dependency1, dependency2 are loaded
});
});
स्पष्ट करें। कृपया अपने प्रश्न का दोबारा जवाब दें। –
ओह, क्या आप वाकई डेटाबेस में मूल्यांकन कोड संग्रहीत कर रहे हैं? –
हां। मेरे मामले में यह ब्राउज़र एक्सटेंशन में था। इसलिए, फाइल सिस्टम में आरईएसटी एंडपॉइंट/डायनामिक कोड सहेजने का कोई विकल्प नहीं है। – bradnoriega