ColdFusion对象方法中的变量名

Seq*_*zia 3 coldfusion

我试图在一个cffunction中设置一个变量.

结果是这样的:

<cfset local.layouts.appLayout = '../../app/layouts' & local.appController.new()>
Run Code Online (Sandbox Code Playgroud)

上面的代码有效.在local.layouts.appLayout结构中,它在appControler中指定新方法的返回值.这就是我需要它做的事情.

我的问题是我需要动态分配该语句的方法部分.我有另一个变量coreRoute.action在该函数中等于"new"但我似乎无法正确使用语法.

我试过这个:

<cfset local.layouts.appLayout = '../../app/layouts' & local.appController.coreRoute.action()>
Run Code Online (Sandbox Code Playgroud)

那不行,我明白为什么.我也试过这个:

<cfset local.layouts.appLayout = '../../app/layouts' & local.appController & #coreRoute.action# & '()'>
Run Code Online (Sandbox Code Playgroud)

我已经尝试了这种语法的许多变体,但我无法做到这一点.

任何人都有任何关于如何做到这一点的想法.我被卡住了.

在此先感谢您的帮助.

更新:在Todd Sharp的帮助下,我最终使用了这个并且效果很好:

<cfinvoke component="#local.appController#" method="#coreRoute.action#" returnvariable="local.act">

            <cfset local.layouts.appLayout = '../../app/layouts' & local.act>
Run Code Online (Sandbox Code Playgroud)

Tod*_*arp 7

您应该考虑使用<cfinvoke>动态方法调用.尝试谷歌搜索"coldfusion动态方法调用" - 这是最好的结果之一:

http://www.bennadel.com/blog/1320-ColdFusion-CFInvoke-Eliminates-The-Need-For-Evaluate-When-Dynamically-Executing-User-Defined-Functions.htm