2013-10-13 33 views
3

我使用道場1.9.1和運行道場RequireJS上RequireJS

我實現它使用此代碼:

<script src="require.js"></script> 
<script type="text/javascript"> 
     requirejs.config({ 
     baseUrl: location.pathname.replace(/\/[^/]+$/, '') + '/js/', // magic! 
     packages: [ 
      { 
      name: 'dojo', 
      location: "http://ajax.googleapis.com/ajax/libs/dojo/1.9.1/dojo/" 
      } 
     ] 
    }); 
</script> 

... ..

<script> 
     require(["dojo/domReady!"], function() { 
     ...... 
     }); 
    </script> 

就會拋出關於has.js的一些例外不能正常工作

Uncaught TypeError: Object function(){} has no method 'add' has.js:8 
Uncaught Error: Load timeout for modules: dojo/domReady!_unnormalized2 

有沒有人有解釋,或有關如何解決它的想法?

+0

你有沒有任何理由使用Dojo和RequireJS,而不是簡單地使用Dojo的'require'和'define'? –

+0

我有一個使用requirejs的現有骨幹應用程序,我想集成ArcGis Map(JavaScript API與Dojo https://developers.arcgis.com/en/javascript/jstutorials/一起工作) –

回答

4

Dojo的CDN版本是在假定您使用Dojo加載器來減小代碼大小的情況下構建的。部分代碼刪除是如果加載程序不包含一個(如RequireJS)則使用的替代has.js實現。您可以使用RequireJS的常規下載版本的Dojo,它可以正常工作,但不能使用CDN版本。