0

我创建了一个基于 dojo 的 Worklight 项目和一个混合应用程序。我做了一个 dojo 移动按钮的拖放操作,该按钮被添加到 dojo 移动视图中。所有这些都可以正常工作,并且在各种环境(常见、android 等)中都能很好地呈现。它还正确显示了富页面编辑器中的外观。

但后来我添加了一个脚本,它有一个非常简单的 dojo.ready 调用。现在,当我运行此应用程序时,我收到控制台错误消息ReferenceError: dojo is not defined。知道为什么会这样吗?

我知道我已经正确设置了道场,因为其他部分似乎可以工作。我还检查了 dojo.js 是否正在加载(这很明显,因为其他部分正在工作)。我正在使用安装了所有功能的 IBM Worklight 6.0 开发人员版。

这是我的示例代码

<!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>

谢谢,高拉夫

4

1 回答 1

0

如果你想使用 dojo.ready 你必须先初始化它。

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

这是参考:http ://dojotoolkit.org/reference-guide/1.8/dojo/ready.html#dojo-ready

更新 1

你现在使用哪个版本的道场?1.6 还是 1.7+?新的 AMD 需要像我之前写的那样初始化模块。

你读过这个线程吗?导入dojo Libarys 时似乎出现故障。我想这可能与您的错误有关。

worklight 无法在真实设备上要求 DOJO 组合 - 无法加载... /dijit/form/nls/it/ComboBox.js

Worklight core-web-layer.js 错误

问候,米里亚姆

于 2013-08-27T06:51:05.820 回答