如何访问传递给 ColdBox 模块的事件参数?
How to access the event arguments passed to a ColdBox module?
我的 ColdBox 应用程序中有一个视图在视图中调用模块处理程序,如下所示:
#runEvent( event="mymodule:home.index" )#
现在我想将参数传递给模块,所以我将调用更改为:
#runEvent( event="mymodule:home.index", eventArguments=moduleArgs )#
虽然不幸的是我似乎无法访问模块事件处理程序中传递的参数。我已经转储 rc
和 prc
,但它们只包含我在主事件处理程序中设置的变量,并且 event
参数似乎没有提供 [=32] 的方法=] 传递的参数。很遗憾,documentation about module event executions 没有提供任何相关信息。
此外,我意识到在模块 returns 中调用 event.getCurrentModule()
是一个空字符串。我会期望模块的名称。
那么,如何访问传递给模块的参数? runEvent()
是正确的功能吗?我错过了模块配置设置吗?
您可以像这样在函数中定义参数
function index(event, rc, prc, isRender=false) {
writedump(arguments);
abort;
}
ColdBox documentation 解释了如何将附加参数传递给您的函数。所以例如打电话
#runEvent( event="mymodule:home.index", eventArguments={foo="bar"} )#
可以通过 arguments
范围访问 foo
变量:
function index(event, rc, prc) {
writedump(arguments.foo); // Dumps "bar"
}
我的 ColdBox 应用程序中有一个视图在视图中调用模块处理程序,如下所示:
#runEvent( event="mymodule:home.index" )#
现在我想将参数传递给模块,所以我将调用更改为:
#runEvent( event="mymodule:home.index", eventArguments=moduleArgs )#
虽然不幸的是我似乎无法访问模块事件处理程序中传递的参数。我已经转储 rc
和 prc
,但它们只包含我在主事件处理程序中设置的变量,并且 event
参数似乎没有提供 [=32] 的方法=] 传递的参数。很遗憾,documentation about module event executions 没有提供任何相关信息。
此外,我意识到在模块 returns 中调用 event.getCurrentModule()
是一个空字符串。我会期望模块的名称。
那么,如何访问传递给模块的参数? runEvent()
是正确的功能吗?我错过了模块配置设置吗?
您可以像这样在函数中定义参数
function index(event, rc, prc, isRender=false) {
writedump(arguments);
abort;
}
ColdBox documentation 解释了如何将附加参数传递给您的函数。所以例如打电话
#runEvent( event="mymodule:home.index", eventArguments={foo="bar"} )#
可以通过 arguments
范围访问 foo
变量:
function index(event, rc, prc) {
writedump(arguments.foo); // Dumps "bar"
}