【问题标题】:Dojo datagrid in dialog causes parse error on load对话框中的 Dojo 数据网格导致加载时解析错误
【发布时间】:2013-05-01 13:51:37
【问题描述】:

我正在尝试在 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>

【问题讨论】:

    标签: datagrid dojo dialog


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      尽管这篇文章很旧,但您的问题似乎是"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>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-26
        • 1970-01-01
        • 2013-06-03
        • 1970-01-01
        • 1970-01-01
        • 2012-02-14
        • 2017-01-03
        相关资源
        最近更新 更多