因此,我可以从dojoConfig参考中看到该文件已正确加载,但是,当我尝试使用该模块时,其“未定义”的任何建议:
更新:这将加载文件,但是当我将变量放入控制台时,什么也没出现。在检查它时,我看到很多文本,而不是放置在其中的objs数组。
index.html:
<script>
dojoConfig = {
tlmSiblingOfDojo: true,
async: true,
parseOnLoad: false,
packages: [
{ name: "main", location: "/components/3.6compact/js/dojo/dojo/main"},
{ name: "jquery", location: "/scripts/libs", main: "jquery"},
{name: "jam", location: "/scripts/mylibs", main: "lod"}
]
};
</script>
<script src="/components/3.6compact/js/dojo/dojo/dojo.js"></script>
<script src="/scripts/app.js"></script>
lod.js:
define([], function(){
var lod = [{
'level': 0,
'resolution': 156543.033928,
'scale': 591657527.591555
}, {
'level': 1,
'resolution': 78271.5169639999,
'scale': 295828763.795777
}
];
return lod;
});
app.js:*
require(['jam'], function(jam){
console.log(lod);
});
最佳答案
很难在jsfiddle之类的示例上提供示例,在该示例中我们无法通过文件路径指定资源,但是我认为问题出在javascript中的模块ID。在您的dojoConfig
中,location
属性定义了该程序包中模块所在目录的路径。
如果您的lod
模块位于/scripts/mylibs/lod.js
中,则需要输入lod/lod
:
require(['lod/lod'], function(lod) {
console.log("lod module:", lod);
});
Here's the documentation for dojo config。我将查看“装载程序配置”部分。
无论如何,我还是尝试了jsfiddle,这可能会很有用:http://jsfiddle.net/tupton/ftN6h/
注意控制台中的错误:
'lod':
GET http://fiddle.jshell.net/scripts/mylibs/LOD.js 404 (Not Found)
和“ lod / lod”:
GET http://fiddle.jshell.net/scripts/mylibs/lod.js 404 (Not Found)
我对软件包配置的“ main”属性不熟悉,但是当您尝试需要整个软件包时,它似乎就是在使用它。也许尝试将其更改为“ lod”,以便它查找“ ... / lod.js”?