2012-06-29 64 views
0

使用Dojo 1.7.2Dijit模塊腳本未被正確添加;路徑不正確

初學者到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模塊正常工作。

沒有錯誤登錄在控制檯。

回答

1

我從來沒有在configuration之前使用過包裝。我一直使用modulePaths。下面是配置道場的例子:

<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根目錄中,有一個名爲模塊子目錄,這是即JavaScript存在於您的自定義。

+0

是的,現在的作品。似乎有幾種方法可以在Dojo做任何單一的事情,每個都有自己的小驚喜......謝謝! – Ipsquiggle

+0

要清楚:它是'modulePaths'而不是'packages'。 (baseUrl必須是'./',因爲我從本地文件夾運行這個。) – Ipsquiggle