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

11

我有一个名为test.cfm的页面,希望从该页面(test.cfm)使用<cfscript>调用一个名为errorEmail的中定义的cfc,而不是...

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

我已经尝试了:

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

不使用cfinvoke标签调用errorEmail的原因是什么? - Francis P
这是我在CFCS中测试函数的方式。我创建一个test.cfm页面并调用正在测试的CFC中的函数。然后,我通常会在test.cfm中使用cfdumps来确保函数正常工作。 - isurfbecause
1个回答

13

我经常这样做。

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>

4
您可以通过链式调用来缩短代码:createObject("component", "cfc路径").errorEmail(); - Eric Belair
2
可以这样做。通常我不这样做。我会在页面顶部创建对象,并可能在整个页面中多次引用它。不过这是个好主意! - Evik James
谢谢大家,这会帮助我更快地测试我的函数!另外,@Eric,我不知道你可以像 jQuery 一样链式调用,谢谢。 - isurfbecause
我同意@Evik的观点。如果您在模板中重复使用一个对象超过一次,则将其存储在变量中并重复使用它。但是,如果您仅为一个目的创建对象,则首选链接方法调用。 - Eric Belair
1
如果你正在使用CF9+,你也可以使用myReturn = new path.to.cfc().method();这个方法。 - Mike Causer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接