我收到此错误:Error: defineAlreadyDefined
,只会出现在dojo中。
的index.php
<script data-main="app" src="require.js"></script>
app.js
require({
paths : {
dojo : 'http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojo/dojo'
}
});
require([ 'dojo' ], function() {
//something
});
我发现了一个类似的问题,但没有帮助我:
When dojo.js loaded via ajax multiple times get Error: defineAlreadyDefined
编辑:我搜索过,我认为我尝试使用requiJS和Dojo的方式是错误的。 http://dojotoolkit.org/features/1.6/async-modules有什么想法吗?感谢
答案 0 :(得分:3)
为了使用带有dojo的外部加载器,您需要跳过定义AMD加载器的dojo / dojo.js文件。您的require配置应该包含以下内容:
require({
packages: [
{
name: 'dojo',
location: 'dojo',
main:'dojo/main'
}
]
});
但是,dojo加载器在加载jQuery插件方面与requireJS一样出色,并且附带了一些额外的插件,如dojo/has
。我认真考虑使用它的装载机。
答案 1 :(得分:0)
我不确定你想在这里完成什么,但是Dojo implements requireJS。因此,您不需要requireJS。
对于Dojo库的正常使用,您要做的是:
//call dojo script
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.7.2/dojo/dojo.js"></script>
<script>
var dojoConfig = (function(){
return {
async: true,
//in case you wanted to use your own library
paths: [{
name: "location/library"//your library path
}]
};
})();
require([
"dojo/parser",
"name/something",//calling 'somethong' from library
"dojo/domReady!"
], function(parser, something /*your library obj*/){
//your logic
parser.parse();
something.do();
});
});
</script>