CFC未定义,具有可变定义的方法名称

时间:2017-01-03 21:54:44

标签: coldfusion dependencies cfml cfc

审核以下主题后:

ColdFusion 9 Dynamic Method Call

Dynamic Method Call

我仍然有一个关于错误的问题。 我做了一个例子试图说清楚:

undefined cfc image

我想使用一个可变命名的函数。 (但这是我遇到的问题,我可以运行一个可变命名的函数)

我认为它是未定义的,因为service2的方法是从service1的上下文中调用的,并且无法调用service1中的方法,因为service1已被锁定"等待首先是service2的返回值。

除非没有解决方法,否则我希望将方法保留在原来的位置。我能正确理解这个问题吗?

使用CF16和Framework1。

1 个答案:

答案 0 :(得分:0)

由于我可以使用快速解决方案,我会发布我想出的一些内容,但是我还在寻找一个最佳实践"一种建议。

Service1现在在service2中调用一个新方法,比如" chooseFunctionToRun"。

function chooseFunctionToRun(funcName,param1,param2){
   var functionToRun = this[funcName];
   return functionToRun(param1,param2);
}

现在,无论functionToRun评估为(例如MethodA),都可以从Service1中自由调用方法,而不会定义Service1。

它似乎只是一种关注点的分离"对于代码,资产从Service1移动到Service2,因此Service2可以决定要运行的变量函数。仍不确定为什么会这样。任何评论欢迎。

<强>更新 Alex建议使用CFInvoke,它更干净。

function chooseFunctionToRun(funcName,param1,param2){
   invoke("",funcName,{arg1=param1,arg2=param2});
}