2017-01-16 76 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" 
}