我试图在一个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)
您应该考虑使用<cfinvoke>
动态方法调用.尝试谷歌搜索"coldfusion动态方法调用" - 这是最好的结果之一:
归档时间: |
|
查看次数: |
386 次 |
最近记录: |