使用Dojo

时间:2017-05-19 20:17:56

标签: javascript dojo amd

我正在使用dojo来模块化我的应用程序。

有一个JSON配置文件,用于指定要在数组中加载哪些模块

我不确定如何将它应用于Dojo的require库,因为它是异步的,语法有点奇怪。

有没有办法批量生产?或者我必须为每个文件调用一个新的声明。

有没有办法在已加载的模块上强制执行订单?我真的需要这个订单得到尊重,或者至少要恢复并稍后订购

这是我开始使用的一个例子,但对我来说不合适(是的,我使用的是AMD版本):

也许有办法迫使它同步加载?但我猜这不会被推荐

files = ["fileone","filetwo","filethree"] //this would be loaded from a config file

files.forEach((item,i) => {
    dojo.require(item, function(module){
        console.log(module)
    }
})

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作(外部require可以替换为模块中的define):



require([
"require"
/*, "dojo/text!path/to/config.json" */ 
], function(require /*,config*/){
	var files = ["dojo/dom", "dojo/_base/declare"]; //replace this with array from config 
                                         //(propably needs JSON.parse(config))
  
  require(files, function(){
  	console.log("All in one require");
  	console.log(arguments);
  });
  
  files.forEach(function(file, i){
  	require([file], function(module){
    	console.log("ForEach: module nr " + i);
      console.log(module);
    });
  });
  
});

<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
&#13;
&#13;
&#13;