使用相对路径加载Requirejs模块

时间:2013-04-15 19:41:49

标签: javascript requirejs amd

我需要一个基于配置加载一组其他模块的js模块。像这样的结构

define(['json!config.json', function() {
   //load module on config.path + 'modulea' ;
   //load module on config.path + 'moduleb' ;
   doSomething(modulea,moduleb) ; 

}) ;

这是最好的方法吗?

3 个答案:

答案 0 :(得分:2)

define(['config.json'], function(config) {
    require.config({
        paths: {
        "modulea": config.path + "modulea",
        "moduleb": config.path + "moduleb"
    }
});

然后您可以在任何地方要求您的模块,只需确保始终先执行上述模块。

http://requirejs.org/docs/api.html#config

答案 1 :(得分:0)

怎么样:

define(['json!config.json', function(config) {
   require([config.path + 'modulea', config.path + 'moduleb'], function(modulea, moduleb) {
     doSomething(modulea, moduleb) ; 
   }
})

答案 2 :(得分:-1)

只要您信任脚本的来源,就可以使用脚本标记加载。您可以使用以下功能:

loadscript = function(url,callback,err) {
    var s = document.createElement('script');
    s.src=url;
    if(typeof callback != 'undefined') { s.onload=callback; }
    if(typeof err != 'undefined') { s.onerror=err; }
    document.getElementsByTagName('head')[0].appendChild(s); //assuming you want the script tags in the document head
}