在RequireJS上运行Dojo

时间:2013-10-13 08:20:06

标签: dojo requirejs

我正在使用Dojo 1.9.1和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

是否有人有解释或有关如何解决它的想法?

1 个答案:

答案 0 :(得分:4)

假设您正在使用Dojo加载程序以减少代码大小,构建了Dojo的CDN版本。部分代码删除是替代的has.js实现,如果加载器不包含一个(如RequireJS),则使用该实现。您可以使用常规下载的Dojo和RequireJS版本,它可以正常工作,但您无法使用CDN版本。