2012-02-21 44 views
2

當使用道場1.6,我可以 「重命名」 的核心道場包像這樣:重命名核心Dojo包

<html> 

<head> 

<script type="text/javascript"> 
    djConfig = { 
     baseUrl: 'https://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dojo/', 
     scopeMap: [ 
     [ 'dojo', 'myDojo' ] 
     ] 
    } 
</script> 
<script src="https://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dojo/dojo.xd.js"></script> 
</head> 

<body> 
<script type="text/javascript"> 
    if (typeof dojo != 'undefined') { 
     document.write("Defined: dojo: " + dojo.version + '\n'); 
    } 
    if (typeof myDojo != 'undefined') { 
     document.write("Defined: myDojo: " + myDojo.version + '\n'); 
    } 
</script> 
</body> 

</html> 

上面打印 「定義:myDojo:1.6.1 ...」。我如何在Dojo 1.7中完成同樣的事情?下面的例子here,我想這個測試,但沒有成功:

<html> 

<head> 

<script type="text/javascript"> 
    dojoConfig = { 
     baseUrl: 'dojo/1.7.2/dojo/', 
     packages: [ 
     { name: 'myDojo', 
      location: '../dojo', 
      packageMap: { 
       dojo: 'myDojo' 
      } 
     } 
     ] 
    } 
</script> 
<script src="dojo/1.7.2/dojo/dojo.js"></script> 
</head> 

<body> 
<script type="text/javascript"> 
    if (typeof dojo != "undefined") { 
     document.write("Defined: dojo: " + dojo.version + '\n'); 
    } 
    if (typeof myDojo != "undefined") { 
     document.write("Defined: myDojo: " + myDojo.version + '\n'); 
    } 
</script> 
</body> 

</html> 

這版畫 「定義:道場:1.7.2 ...」。我錯過了什麼?

回答

2

爲了在使用源代碼版本時獲取全局變量的重映射,您需要將dojoConfig.async設置爲truthy,然後您需要加載'myDojo'包。

http://jsfiddle.net/neonstalwart/44e56/是下面的代碼的工作示例:

<script type="text/javascript"> 
    // configure dojo 
    dojoConfig = { 
     async: 1, 
     packages: [ 
      { 
       name: 'myDojo', 
       location: '../1.7.2', 
       // re-map globals to different names 
       packageMap: { 
        dojo: 'myDojo' 
       } 
      } 
     ], 
     deps: ['myDojo'], 
     callback: function() { 
      if (typeof dojo != "undefined") { 
       alert("Defined: dojo: " + dojo.version + '\n'); 
      } 
      if (typeof myDojo != "undefined") { 
       alert("Defined: myDojo: " + myDojo.version + '\n'); 
      } 
     } 
    }; 
</script> 
<script type="text/javascript" src="https://raw.github.com/dojo/dojo/1.7.2/dojo.js"></script> 

+0

謝謝,這是有益的。我認爲我現在比以前好得多。但是,根據我指出的1.7.2版本,我看到了不同的行爲。我嘗試了你的github鏈接(簡單的myDojo.fadeIn()作品),dojotoolkit.org上的Google CDN鏈接(爲同樣的fadeIn()測試獲得了幾個multipleDefine錯誤),並直接指向我從dojotoolkit.org直接獲得的本地副本/ downloads(「myDojo.style不是函數」)。我更新了你的例子,以顯示我的意思: http://jsfiddle.net/44e56/4/ – Tommy 2012-02-21 23:46:30

+0

@Tommy如果它的工作,你應該點擊接受答案:D – OammieR 2012-02-22 02:18:34

+0

嗯,我仍然在努力與爲什麼一些1.7.2的工作和其他人不這樣做,但這肯定讓我朝着正確的方向前進,再次感謝! – Tommy 2012-02-27 19:16:25