2

我需要从我一直在创建的一些模块中加载文件,但 dojo 加载程序不断添加“.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扩展(后缀)?

4

1 回答 1

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 非常有用。

我回答这个问题是为了帮助其他开发人员解决类似的问题,尽管您的问题是在一段时间前发布的。

于 2014-01-03T00:57:48.607 回答