如何访问传递给ColdBox模块的事件参数?

时间:2017-01-16 10:01:26

标签: module coldfusion coldbox

我的ColdBox应用程序中有一个视图,它在视图中调用模块处理程序,如下所示:

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

现在我想将参数传递给模块,所以我将调用更改为:

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

虽然遗憾的是我似乎无法访问模块事件处理程序中传递的参数。我已经转储rcprc,但它们只包含我在主事件处理程序中设置的变量,而event参数似乎没有提供返回传递的方法参数。遗憾的是,documentation about module event executions未提供任何相关信息。

另外,我意识到在模块中调用event.getCurrentModule()会返回一个空字符串。我原本期望该模块的名称。

那么,我如何访问传递给模块的参数? runEvent()对此有正确的作用吗?我错过了模块配置设置吗?

2 个答案:

答案 0 :(得分:2)

您可以像这样在

中定义函数中的参数
function index(event, rc, prc, isRender=false) {
  writedump(arguments);
  abort;
} 

请参阅ColdBox runEvent() documentation

答案 1 :(得分:1)

ColdBox documentation解释了如何将其他参数传递给函数。所以例如调用

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

可以通过foo范围访问arguments变量:

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