我的ColdBox应用程序中有一个视图,它在视图中调用模块处理程序,如下所示:
#runEvent( event="mymodule:home.index" )#
现在我想将参数传递给模块,所以我将调用更改为:
#runEvent( event="mymodule:home.index", eventArguments=moduleArgs )#
虽然遗憾的是我似乎无法访问模块事件处理程序中传递的参数。我已经转储rc
和prc
,但它们只包含我在主事件处理程序中设置的变量,而event
参数似乎没有提供返回传递的方法参数。遗憾的是,documentation about module event executions未提供任何相关信息。
另外,我意识到在模块中调用event.getCurrentModule()
会返回一个空字符串。我原本期望该模块的名称。
那么,我如何访问传递给模块的参数? runEvent()
对此有正确的作用吗?我错过了模块配置设置吗?
答案 0 :(得分:2)
您可以像这样在
中定义函数中的参数function index(event, rc, prc, isRender=false) {
writedump(arguments);
abort;
}
答案 1 :(得分:1)
ColdBox documentation解释了如何将其他参数传递给函数。所以例如调用
#runEvent( event="mymodule:home.index", eventArguments={foo="bar"} )#
可以通过foo
范围访问arguments
变量:
function index(event, rc, prc) {
writedump(arguments.foo); // Dumps "bar"
}