2016-09-20 49 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,但我沒有找到辦法做到這一點。

相關問題