dojo.ready调用在Worklight 6.0中显示错误

dojo.ready调用在Worklight 6.0中显示错误,dojo,ibm-mobilefirst,Dojo,Ibm Mobilefirst,我已经创建了一个基于dojo的Worklight项目和一个混合应用程序。 我拖放了一个dojo mobile按钮,它被添加到dojo mobile视图中。所有这些都可以在各种环境(普通、android等)中正常工作和渲染。它还正确地显示了富页面编辑器中的外观 但是后来我添加了一个脚本,它有一个非常简单的dojo.ready调用。现在,当我运行这个应用程序时,我得到一个控制台错误,说ReferenceError:dojo没有定义。知道为什么会这样吗 我知道我已经正确地设置了dojo,因为其他部分似

我已经创建了一个基于dojo的Worklight项目和一个混合应用程序。 我拖放了一个dojo mobile按钮,它被添加到dojo mobile视图中。所有这些都可以在各种环境(普通、android等)中正常工作和渲染。它还正确地显示了富页面编辑器中的外观

但是后来我添加了一个脚本,它有一个非常简单的dojo.ready调用。现在,当我运行这个应用程序时,我得到一个控制台错误,说ReferenceError:dojo没有定义。知道为什么会这样吗

我知道我已经正确地设置了dojo,因为其他部分似乎都能正常工作。我还检查了dojo.js是否正在加载(这一点很明显,因为其他部分正在工作)。我正在使用安装了所有功能的IBM Worklight 6.0 developer edition

这是我的示例代码

<!DOCTYPE HTML>
<html>
        <head>
            <meta charset="UTF-8">
            <title>jmdwl</title>
            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
            <meta name="apple-mobile-web-app-capable" content="yes">
            <link rel="shortcut icon" href="images/favicon.png">
            <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
            <link rel="stylesheet" href="css/jmdwl.css">
            <script>window.$ = window.jQuery = WLJQ;</script>
            <script type="text/javascript" src="dojox/mobile/deviceTheme.js"></script>
            <script type="text/javascript" data-dojo-config="isDebug: false, async: true, parseOnLoad: true, mblHideAddressBar: false" src="dojo/dojo.js"></script>
            <script>
            dojo.ready(function() {
                alert("Here");
            });
            </script>
        </head>
        <body id="content" style="display: none;">
            <div data-dojo-type="dojox.mobile.ScrollableView" id="view0" data-dojo-props="selected:true">
                <!--application UI goes here-->

                    <button data-dojo-type="dojox.mobile.Button">Label</button>
            </div>
            <script src="js/initOptions.js"></script>
            <script src="js/jmdwl.js"></script>
            <script src="js/messages.js"></script>
        </body>
</html>

jmdwl
window.$=window.jQuery=WLJQ;
ready(function()){
警报(“此处”);
});
标签
谢谢,
Gaurav

如果要使用dojo.ready,必须先初始化它

<script>
  require(["dojo/ready"], function(ready){     
        ready(function() {
            alert("Here");
        });
  });

require([“dojo/ready”],函数(ready){
就绪(函数(){
警报(“此处”);
});
});
以下是参考资料:

更新1

您现在使用的是哪个版本的dojo?1.6或1.7+? 新的AMD需要像我以前写的那样初始化模块

你读过这篇文章吗?导入dojo库时似乎出现了故障。我想这可能与你的错误有关


你好,米里亚姆。谢谢你的回复。但据我所知,Worklight中的dojo应用程序没有添加任何特定的require标记。事实上,如果您DnD一个移动小部件,它不会在html中添加require语句,但它们确实正确呈现。在旁注中,甚至dojo.addOnLoad也会抛出相同的错误。编辑我的答案并添加两个链接。这可能会有所帮助。这是因为DnD可能使用了不推荐使用的编码方式,在这种方式下,所有东西都可以使用
dojo.*
。我不建议这样使用它。看一看:当您从调色板中删除一个小部件时,它会将必要的模块添加到应用程序的JavaScript文件(在本例中为
js/jmdwl.js
)中的requires列表中,而不是应用程序的html文件中。