是否可以在Dojo中加载脚本而不附加“.js”扩展名

时间:2013-04-10 15:24:30

标签: javascript dojo

我需要从我一直在创建的一些模块中加载文件,但是dojo loader继续添加“.js”扩展名。

我一直在使用类似的东西:

require(["dojo/ready","some/module"], function( ready, app ) {
        ready( function( ) {

            app.something();

        } );
    });

但它不断加载module.js 我想要像url/some/module这样的东西。

我发现使用类似“some/module?noext”的内容有效,但是没有配置选项?

我已经看到类似于RequestJs和插件的类似问题(https://github.com/millermedeiros/requirejs-plugins)。

那么可以防止dojo添加de js扩展名(后缀)吗?

1 个答案:

答案 0 :(得分:1)

是的,这是可能的。在dojo/text!.之前添加some/module(包括感叹号和点字符),如下面的代码所示。我故意在下面的示例中保留了一个php目标,以证明它也可以是动态源:

require(["dojo/ready","dojo/text!.myPHPFiles/somePhpFile.php"], function( ready, app ) {
    ready( function( ) {

        app.something();

    } );
});

我不确定这是否允许结果中的任何JS代码可执行(在上面的示例中app.something()可能无法执行)。您可能想要测试并确认。但是,这对于加载动态内容(如JSON数据)非常有用,可用作FilteringSelect等小部件的DataStore。

我正在回答此问题,以帮助其他开发人员解决类似问题,尽管您的问题已经过了一段时间。