新DOJO道场没有加载

时间:2013-05-20 13:20:43

标签: dojo

我是道场新手。我试图设置一个示例Dojo页面,但Dojo组件未加载。相反,我得到以下错误

  

ReferenceError:dojo未定义
dojo.require(“dijit.form.Dialog”);

但是应用了CSS,class =“dijitHidden”隐藏了DIV。

以下是我的HTML:

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="dijit/themes/tundra/tundra.css" />
<link rel="stylesheet" type="text/css" href="dojox/grid/resources/Grid.css">
<link rel="stylesheet" type="text/css" href="dojox/grid/resources/tundraGrid.css">
<script language="text/javascript" src="dojo/dojo.js" ></script>
<script>
    dojoConfig = {
        isDebug: true,
        parseOnLoad: true,
        async: true
        //foo: "bar"
    };
</script>
<script>
    dojo.require("dojo.Dialog");
    function showDialog(){
        dijit.byId("terms").show();
    }
    function hideDialog(){
    dijit.byId("terms").hide();
    }
</script>
    <meta charset="utf-8"> 
    <title> Hello Dojo</title>
</head>
<body>
<h1> Welcome to Dojo</h1>
<div id="contentDiv">
    <button onclick="showDialog()" > view terms and conditions</button>
    <div class="dijitHidden">
        <div data-dojo-type="digit.Dialog" style="widht:600px" data-dojo-props="title:'terms and conditions'" id="terms">
            Digit Dialog Box Appears
            <button onclick="hideDialog();"> I Agree</button>
        </div>
    </div>
</div>
</body>
</html>

3 个答案:

答案 0 :(得分:0)

评论中也已经回答过,dojoConfig定义太晚了。此外,您需要使用require:

require(["dijit/form/Dialog"], function (formDialog) {...});

答案 1 :(得分:0)

我假设您使用的是Dojo 1.6或某些没有AMD支持的版本。 代码看起来很好,也许你需要改变语言=&#34; text / javascript&#34;输入=&#34; text / javascript&#34;或者您可以在下一行调试:

console.log(dojo);
alert("Wait");

并检查dojo是否正确加载。

如果现在没有任何作用,我还建议检查CDN dojo库版本。

<script src="//ajax.googleapis.com/ajax/libs/dojo/1.6.3/dojo/dojo.xd.js"></script>

答案 2 :(得分:0)

dojoConfig必须在呈现dojo.js文件之前到来。

您的编码风格显示为道场<1.7。因此,使用djConfig而不是dojoConfig。

你在data-dojo-type =“dijit.Dialog”

上犯了错误