加载自定义的Dojo模块

时间:2015-10-21 23:28:50

标签: module dojo require

我对Dojo真的很陌生,所以这可能听起来很愚蠢。

我使用Dojo 1.7作为托管资源(也就是说,我下载了dojo包并将其放在源代码下)。然后我在另一个文件夹中定义了一个自定义模块。结构如下所示:

/
  libs/
    js/
      dojo/
        dojo.js
  myPage/
    myModules/
      myCustomizedModule.js
    index.html

我正在使用"定义"用于在myPage / myModules / myCustomizedModule.js中定义模块的函数

在" myPage"文件夹,我使用index.html来要求自定义模块:

<script>
   require(["myPage/myModules/myCustomizedModule"], function(myCustomizedModule){
     // Do something.
   })
</script>

但是,我无法让它工作:控制台报告错误: &#34; http://localhost/myDojoTest/libs/js/dojo/myPage/MyModules/myCustomizedModule.js 404(未找到)&#34;。

我知道这个目录不对,因为&#34; myPage&#34;文件夹不在&#34; libs / js / dojo&#34;下。但似乎在使用&#34;要求&#34;语句,而不是使用当前HTML文档的相对路径,代码使用dojo.js文件的当前路径。

我能做些什么来正确引用我的自定义模块吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

根据您的要求,您需要设置包,如下所示

<!-- dojo configuration options -->
<!-- For Package configuration refer tutorial at     http://dojotoolkit.org/documentation/tutorials/1.7/modules/ -->
<script type="text/javascript">
        var dojoConfig = {
            async: true,
            baseUrl: "/",
            tlmSiblingOfDojo: false,
            packages: [
                { name: "dojo",  location: "libs/js/dojo" },
                { name: "dijit", location: "libs/js/dijit" },
                { name: "dojox", location: "libs/js/dojox" },
                { name: "myModules", location: "myPage/myModules" }
            ]
        };
    </script>

您可以在require函数调用中访问dojo,dijit和myModules。

请记住您需要 模块及其各自的软件包。

<script>
        require([
            //Require resources.
            "dojo/store/Memory",
            "myModules/myCustomizedModule"
        ], function(Memory, myCustomizedModule){
           ....
        }
        );
</script>

希望它有所帮助。

相关问题