dojo:如何将dojo组件复制到本地目录并使其工作

时间:2012-03-15 00:38:54

标签: javascript dojo

我们为公司内部的项目扩展/定制了dojo。我们的工具包叫做xwt。

我正在考虑将作为工具包一部分的示例文件的副本放入本地目录并开始使用它。因此,我将SampleExtendedIFWS.js文件复制到本地目录中,并将其使用的名称空间从dojo.provide(“xwt.widget.tests.table.store.SampleExtendedIFWS”)更改为dojo.provide(“SampleExtendedIFWS”)。

从我的应用程序页面(jsp)开始,我开始使用dojo.require(“SampleExtendedIFWS”) - 但是,现在它需要来自/app/resources/dojoroot/SampleExtendedIFWS.js的文件,而不是本地目录。< / p>

如何让dojo / xwt获取SampleExtendedIFWS.js的本地目录版本,而不是期望来自/app/resources/dojoroot/SampleExtendedIFWS.js?

1 个答案:

答案 0 :(得分:0)

安键

你需要指定自己的命名空间,否则它会查看dojoroot。 因此,在与dojo和xwt相同的级别,您可以创建自己的目录,让我们说anjanb并放置您的SampleExtendedIFWS.js并更改dojo.provide以将其命名为anjans.SampleExtendedIFWS

现在,在您的示例HTML中,您需要在djConfig中指定模块路径。例如:

djConfig = {
        isDebug: false,
        debugAtAllCosts: false,
        parseOnLoad: true,
        baseUrl: "<path to where your dojo.js resides>",
        modulePaths: {
            'xwt': '../xwt',
            'anjans' : '../anjans'
        }
    };

请注意,模块路径始终相对于dojo.js所在的位置

做一个dojo.require你的对象:

dojo.require ("anjans.SampleExtendedIFWS");

这应该让你去

btw,如果您希望扩展功能,dojo提供了更优雅的机制来扩展对象,而不是使用dojo.extend进行复制和更改。