0

我正在尝试在 dojo 对话框中使用 dojo 数据网格,但在尝试加载页面时出现以下 dojo/parse 错误。

dojo/parser::parse() 错误(new TypeError("d(...) is undefined", " http://ajax.googleapis.com/ajax/libs/dojo/1.8.3/dojox//grid/ DataGrid.js ", 16))

如果我注释掉 require DataGrid 语句,解析错误就会消失。请注意,我什至还没有尝试创建数据网格。只是试图建立一个简单的页面。

以下是页面的代码。

<!DOCTYPE HTML>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Dojo Dialog with DataGrid</title>
        <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/dojo/1.8.3/dijit/themes/claro/claro.css" media="screen">
        <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/dojo/1.8.3/dojox/grid/resources/Grid.css" />
        <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/dojo/1.8.3/dojox/grid/resources/claroGrid.css" />
        <!-- load dojo and provide config via data attribute -->
        <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.8.3/dojo/dojo.js" data-dojo-config="isDebug: true, async: true, parseOnLoad: true"></script>
        <script>
            require(["dojo/parser", "dijit/Dialog", "dijit/form/Button"]);
            require([
                "dojox/grid/DataGrid",
                "dojox/grid/cells",
                "dojo/store/Memory",
                "dojo/data/ObjectStore",
                "dojo/_base/array",
                "dojo/_base/lang",
                "dojox/grid/_CheckBoxSelector",
                "dojo/domReady!",
            ]);
            //var grid2x;
        </script>
    </head>
    <body class="claro">
    <div data-dojo-type="dijit/Dialog" data-dojo-id="myFormDialog" title="Form Dialog"
    execute="alert('submitted w/args:\n' + dojo.toJson(arguments[0], true));">

        <div class="dijitDialogPaneContentArea">
        </div>

        <div class="dijitDialogPaneActionBar">
            <button data-dojo-type="dijit/form/Button" type="submit" onClick="return myFormDialog.isValid();">
                OK
            </button>
            <button data-dojo-type="dijit/form/Button" type="button" onClick="myFormDialog.hide()">
                Cancel
            </button>
        </div>
    </div>

    <p>When pressing this button the dialog will popup:</p>
    <button id="buttonThree" data-dojo-type="dijit/form/Button" type="button" onClick="myFormDialog.show();">
        Show me!
    </button>

    </body>
</html>
4

2 回答 2

0

即使这篇文章很旧,但您的问题似乎是"dojo/domReady!,"最后一次导入后应该没有逗号之后的逗号。还要在第一个要求中加载您想要加载的所有内容,而不是<script> require(["dojo/parser", "dijit/Dialog", "dijit/form/Button"]); require([ "dojox/grid/DataGrid", "dojox/grid/cells", "dojo/store/Memory", "dojo/data/ObjectStore", "dojo/_base/array", "dojo/_base/lang", "dojox/grid/_CheckBoxSelector", "dojo/domReady!", ]); //var grid2x; </script> 将所有内容都放在一个要求中,如下所示: <script> require(["dojo/parser", "dijit/Dialog", "dijit/form/Button", "dojox/grid/DataGrid", "dojox/grid/cells", "dojo/store/Memory", "dojo/data/ObjectStore", "dojo/_base/array", "dojo/_base/lang", "dojox/grid/_CheckBoxSelector", "dojo/domReady!"]);
//var grid2x; </script>

于 2013-10-18T14:43:21.540 回答
0

问题是<html lang="en">。如果 lang="en",解析器无法解析 html 组件。删除它或覆盖data-dojo-config="lang='en-us'"

于 2014-03-21T14:14:55.597 回答