2017-01-16 75 views
1

我有一個觀點在被這樣的觀點中調用的模塊處理我的冷箱應用:如何訪問傳遞給ColdBox模塊的事件參數?

#runEvent(event="mymodule:home.index")#

現在我想參數傳遞給模塊,所以我改變了調用此:

#runEvent(event="mymodule:home.index", eventArguments=moduleArgs)#

雖然不幸的是我似乎不具有該模塊的事件處理程序中訪問傳遞的參數。我傾銷rcprc,但它們只包含我在主事件處理程序中設置的變量,event參數似乎沒有提供返回傳遞參數的方法。不幸的是,documentation about module event executions沒有提供任何關於此的信息。

另外,我意識到在模塊內調用event.getCurrentModule()返回一個空字符串。我會期待模塊的名稱。

那麼,我怎樣才能訪問傳遞給模塊的參數呢?是runEvent()正確的功能呢?我錯過了模塊配置設置嗎?

回答

2

您可以在函數定義的參數是這樣

function index(event, rc, prc, isRender=false) { 
    writedump(arguments); 
    abort; 
} 

ColdBox runEvent() documentation

+0

謝謝你的快速反應!我完全錯過了文檔中的這一點。 –

1

ColdBox documentation解釋瞭如何將其他參數傳遞給你的函數。所以例如調用

#runEvent(event="mymodule:home.index", eventArguments={foo="bar"})# 

foo變量可以通過arguments範圍進行訪問:

function index(event, rc, prc) { 
    writedump(arguments.foo); // Dumps "bar" 
}