问题 你如何使用cfscript从另一个cfm页面调用cfc中的cffunction?


我有一个 test.cfm 页面,并想用一个cfc调用 <cffunction> 命名 errorEmail 运用 <cfscript>  从该页面(test.cfm)而不是

<cfinvoke component = "#cfcPath#" method = "errorEmail" returnVariable = "myReturn" 
    description = "get list of projman">
</cfinvoke> 

我努力了:

<cfscript>
   errorEmail(cfcPath);
</cfscript>

1889
2017-07-11 16:05


起源

不打电话的原因是什么? errorEmail 使用cfinvoke标签? - Francis P
这就是我在cfcs中测试我的功能的方式。我创建了一个test.cfm页面并调用我正在测试的cfc中的函数。然后我通常在test.cfm中做cfdump以确保函数有效。 - isurfbecause


答案:


我一直这样做。

1)创建对象:

<cfscript>
    // CREATE OBJECT 
    TheCFC = createObject("component", "thecfc");
</cfscript>

2)调用函数:

<cfscript>
    // CALL THE FUNCTION
    SomeVariable = TheCFC .theFunction();
</cfscript>

你的版本看起来像这样

<cfscript>
    // CREATE OBJECT 
    TheObject = createObject("component", "cfcPath");
    // CALL THE FUNCTION
    myReturn = TheObject.errorEmail();
</cfscript>

13
2017-07-11 16:22



您可以通过链接调用来缩短它:createObject(“component”,“cfcPath”)。errorEmail(); - Eric Belair
是的,你可以这么做。通常情况下,我没有。我在页面顶部创建了对象,并可能在整个页面中多次引用它。好主意虽然! - Evik James
谢谢你们这应该帮助我更快地测试我的功能!另外,@ Eric我不知道你可以链接像jQuery,谢谢。 - isurfbecause
我同意@Evik。如果您在模板中多次重复使用对象,则存储在变量中并重新使用它。但是,如果您仅为一个目的创建对象,则首选链接方法调用。 - Eric Belair
如果你使用的是CF9 +,你也可以去 myReturn = new path.to.cfc().method(); - Mike Causer