我正在使用requirejs 2.我有一个在主html模板中定义的函数(使用模板化数据),我想确保将此函数作为其他模块的依赖项调用。
一个明显的选择是宣布一个垫片:
shim: {
initialization: {
exports: "initialization",
init: function () {
window.apidata = {
base_url: "{{base_url}}",
prefix: "{{prefix}}",
{% if user %}
user: "{{user.name}}",
{% endif %}
};
return window.apidata;
}
}
然后在我的依赖模块的define()中放入一个“初始化”条目。但是,require一直要求“initialization.js”文件,这是我没有的。我也尝试将函数作为导出,但我得到了相同的结果。
答案 0 :(得分:0)
通过定义命名模块,您可以获得与无文件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
,但我找不到办法做到这一点。