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 に答える