我能在不需要文件的情况下插入一个函数吗?



我使用需求2。我有一个在主html模板中定义的函数(使用模板化的数据),并且我想确保该函数作为其他模块的依赖项被调用。

一个明显的选择是声明一个shim:

     shim: {
        initialization: {
            exports: "initialization",
            init: function () {
                window.apidata = {
                    base_url: "{{base_url}}",
                    prefix: "{{prefix}}",
                    {% if user %}
                    user: "{{user.name}}",
                    {% endif %}
                };
                return window.apidata;
            }
        }

,然后在我的依赖模块的define()中放入一个"initialization"条目。然而,require一直要求"initialization.js"文件,而我没有。我还尝试将函数作为导出,但我得到了相同的结果。

您可以通过定义命名模块获得与从无文件shim获得的功能相同的功能:

define("initialization", function () {
  window.apidata = {
    base_url: "{{base_url}}",
    prefix: "{{prefix}}",
    {% if user %}
    user: "{{user.name}}",
    {% endif %}
  };
  return window.apidata;
});

只要上面的代码在任何需要initialization的代码之前执行, RequireJS将不会去网络解析initialization,但会知道它已经定义了。

曾经,当,我试图看看我是否可以创建一个无文件的shim,但我没有找到这样做的方法。

相关内容

  • 没有找到相关文章

最新更新