2017-02-15 52 views
0

我想用require.js加載我的模塊依賴關係,到目前爲止它正在工作,但我有一個疑問。我創建了一個小功能測試模塊,並把它放在一個名爲panelTest.js如何訪問require.js模塊中的閉包函數?

define(['./panel/View', './panel/TitleView'], function(View, TitleView) { 

    return function test(container) { 

     // main view 
     var panel = new View(container, 'main'); 
     var panelTitle = new TitleView(panel.getContainer(), 'main-title'); 
     panelTitle.setTitle('Properties Panel'); 
     //panelTitle.addCss('pjs-panelTitle'); 
     panel.addView(panelTitle); 

     // sections 
     var top = new View(panel.getContainer(), 'top'); 
     panel.addView(top); 
     var middle = new View(panel.getContainer(), 'middle'); 
     panel.addView(middle); 
     var bottom = new View(panel.getContainer(), 'bottom'); 
     panel.addView(bottom); 

    }; 
}); 

在使用我包括這個腳本標籤模塊如圖所示require.js documentation加載HTML panelTest.js

<script data-main="panelTest.js" 
    src="require.js"></script> 

我的問題是我怎麼能叫的測試功能從模塊外,由於容器參數是從何而來模塊外。

回答

0

您必須通過RequireJS提供的相應渠道訪問該模塊。你可以不喜歡這樣在加載RequireJS一前一後出現script標籤:

require(['panelTest'], function (panelTest) { 
    panelTest(/* some value */); 
}); 

給你展示的代碼,你panelTest模塊似乎並沒有真正意義的「主模塊」,所以我不會把它作爲data-main

如果你想從花葯模塊使用它,把模塊中它自己的文件,並將其定義是這樣的:

define(['panelTest'], function (panelTest) { 
    panelTest(/* some value */); 
}); 
相關問題