0

使用 Dojo 1.7.2

Dojo 初学者,尝试制作一个简单的自定义小部件。

根据教程,我创建了一个具有此定义的模块:

define(['dojo/_base/declare', 'dijit/_Widget', 'dijit/_Templated', 'dojo/text!./templates/groupNode.html'], ...

我这样称呼它:

require(['modules/groupNode', 'dojo/domReady!'], ...

我的 dojoConfig 看起来像这样:

var dojoConfig = {
    async: true,
    baseUrl: "./",
    packages: [
        { name: "dijit", location: "//ajax.googleapis.com/ajax/libs/dojo/1.7.2/dijit" },
        { name: "dojo", location: "//ajax.googleapis.com/ajax/libs/dojo/1.7.2/dojo" },
        { name: "modules", location: "modules" }
    ]
};

但是,在页面加载之后,这个模块永远不会完成定义;当我检查页面源时,我看到脚本包含如下所示:

<script type="text/javascript" charset="utf-8" src="modules/groupNode.js">
<script type="text/javascript" charset="utf-8" src="../dijit//_Widget.js">
<script type="text/javascript" charset="utf-8" src="../dijit//_Templated.js">

显然,dijit模块没有计算出正确的路径,也没有正确加载。

其他仅使用dojo模块的自定义模块可以正常工作。

控制台中没有记录错误。

4

1 回答 1

1

我以前从未在配置中使用过包。我一直使用 modulePaths。下面是一个配置 Dojo 的示例:

<script src="//ajax.googleapis.com/ajax/libs/dojo/1.7/dojo/dojo.js" 
  data-dojo-config="
    isDebug: true, 
    parseOnLoad: false,
    baseUrl: '/',
    modulePaths: {modules: 'modules'}
"></script>

所以这意味着在 web 目录的根目录中,存在一个名为 modules 的子目录,这就是您的自定义 javascript 所在的位置。

于 2012-06-29T20:59:06.603 回答