Dojo的新手,我只是想在dojo / MVC中运行一个基本的Hello world模块,但似乎无法让它工作。我一直得到
dojo.js中没有任何响应/错误或含糊不清的语法错误e() h.injectUrl /小时()
是使用FireFox / Firebug时的说法。 我使用1.8并尝试过CDN和本地副本。
以下是代码。
Index.cshtml
<script src="~/Scripts/dojo/dojo.js" data-dojo-config="async: true, isDebug: true, parseOnLoad: true"></script><script>
// Require default stuff and new module
require([
"~/Scripts/dojoDemo/newModule"
],
function (newModule) {
newModule.setText("greetings", "Hello peoples");
settimeout(function () {
newModule.restoreText("greeting");
}, 3000);
});</script><h1 id="greetings">What up</h1>
<br/>
<br/>
newModule.js
define([
// Define the dependencies
"dojo/dom"],
// Create this function to call new module
function (dom) {
var oldText = {};
return {
setText: function (id, text) {
var node = dom.byId(id);
oldText[id] = node.innerHTML;
node.innerHTML = text;
},
restoreText: function (id) {
var node = dom.byId(id);
node.innerHTML = oldText[id];
delete oldText;
}
};
});
答案 0 :(得分:1)
您需要在dojo配置中指定模块的路径,而不是require
调用。 paths
将顶级模块名称映射到文件到服务器的位置。默认情况下,文件路径相对于dojo.js
<script src="~/Scripts/dojo/dojo.js"
data-dojo-config="async: true, isDebug: true, parseOnLoad: true,
paths: { dojoDemo: '../dojoDemo' }">
</script>
<script>
require(["dojoDemo/newModule", "dojo/domReady!"], function (newModule) {
newModule.setText("greeting", "Hello peoples");
setTimeout(function () {
newModule.restoreText("greeting");
}, 3000);
});
</script>