如何将 dojo 加载到 html 文件中以调用 dojox.mobile 函数



好的,所以我对道场相当陌生,我正在尝试制作一个非常简单的示例移动应用程序。 我正在使用 eclipse 来运行使用 android 模拟器安装/运行应用程序的代码。 我遇到的问题是,我不断收到"未定义要求"或"未定义 dojo"的未捕获引用错误,导致我的应用程序显示为纯文本,而不是像使用 dojox.mobile 小部件的 android 应用程序那样格式化。

这是我的代码:

<!DOCTYPE HTML>
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,
minimum-scale=1,user-scalable=no"/>
<title>PhoneGap</title>
<!-- DOJO -->
<script src="/assets/www/lib/dojo/dojo/dojo.js" data-dojo-config="isDebug: true, parseOnLoad:true">
</script>
<link rel="stylesheet" href="/assets/www/lib/dojo/dojox/mobile/themes/android/android.css" 
type="text/css" media="screen" title="no title" charset="utf-8">

<script type="text/javascript" charset="utf-8" src="/assets/www/cordova-1.6.0.js"></script>
<script>
require(["dojo"], function(dojo) {
    dojo.require("dojox/mobile")
    dojo.require("dojox/mobile/parser")
});
</script>
</head>
<!-- END DOJO -->

<body>
<!-- ACCIDENT TOOLKIT PAGE -->
<div data-dojo-type="dojox.mobile.View" id="accHelp" selected="true">
    <h1 data-dojo-type="dojox.mobile.Heading">Accident</h1>
    <div class="text">If you are in an accident, you should first move to a safe 
    location. Below are some additional actions you can take:</div>
    <ul data-dojo-type="dojox.mobile.RoundRectList">
        <li data-dojo-type="dojox.mobile.ListItem" 
            onclick="window.location='geo:0,0?q=police';">Call the Police</li>
        <li data-dojo-type="dojox.mobile.ListItem"
            onclick="window.location='geo:0,0?q=towing';">Call for a Tow Truck</li>
        <li data-dojo-type="dojox.mobile.ListItem" moveTo="accInfo" transition="slide"
            onClick="itemClicked();">Exchange Driver Info</li>
        <li data-dojo-type="dojox.mobile.ListItem" moveTo="accInfo" transition="slide"
            onClick="itemClicked();">Record Accident Location</li>
        <li data-dojo-type="dojox.mobile.ListItem" moveTo="accInfo" transition="slide"
            onClick="itemClicked();">Take Photos of Accident</li>
    </ul>
</div>
<!-- EXCHANGE DRIVER INFO PAGE -->
<div data-dojo-type="dojox.mobile.View" id="accInfo">
    <h1 data-dojo-type="dojox.mobile.Heading" back="Accident" moveTo="accHelp"
        onClick="console.log('Going back');">Driver</h1>
    <h2 data-dojo-type="dojox.mobile.RoundRectCategory">Other Driver Info</h2>
</div>
<script>
function itemClicked() {
  console.log("itemClicked()");
}
</script>
</body>
</html>

代码本身是否有任何问题? 尤其是在我使用脚本 scr 的地方......指向 dojo.js 以及我使用的位置需要调用 dojo.mobile 函数。 我的印象是,只要 src 指向包树中的正确位置,我将文件复制到何处并不重要。

我尝试使用 Google CDN 调用 dojo.js,但当我这样做时模拟器会抛出错误,可能是因为它没有使用互联网连接?

任何帮助都会很棒!

尝试从本地网址中删除/assets/www/

您的 require 语句如下所示:

require(["dojo"], function(dojo) {
    dojo.require("dojox/mobile")
    dojo.require("dojox/mobile/parser")
});

它应该看起来像这样:

require([
    "dojo/mobile",
    "dojo/mobile/parser"
],
function(mobile, parser) {
    // your code here;
});

最新更新