2016-09-20 58 views
0

我正在使用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; 
      } 
     } 

,然后把一个“初始化”项中定义()我的依赖模块。但是,require要求一个“initialization.js”文件,我没有。我也尝试将函数作为出口,但我得到了相同的结果。

回答

0

你可以得到相同的功能的一个你会从fileless 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,但我没有找到办法做到这一点。

相关问题