Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在自定义标记中使用自定义标记的ColdFusion_Coldfusion_Custom Tags - Fatal编程技术网

在自定义标记中使用自定义标记的ColdFusion

在自定义标记中使用自定义标记的ColdFusion,coldfusion,custom-tags,Coldfusion,Custom Tags,我对来自Java/OOP世界的ColdFusion有点陌生 我有一个自定义标记,它在cfscript中运行一些东西并输出一个值。我想要这个自定义标记,我们称它为A调用另一个自定义标记,我们称它为B,一个更通用的自定义标记,有一种带有特定参数的“静态”函数 我如何从A内部呼叫B? 如何在A中使用B的返回值 A的代码 <cfscript> //Call to other custom tag here?: //foo = [CUSTOMTAG param="stuff

我对来自Java/OOP世界的ColdFusion有点陌生

我有一个自定义标记,它在cfscript中运行一些东西并输出一个值。我想要这个自定义标记,我们称它为A调用另一个自定义标记,我们称它为B,一个更通用的自定义标记,有一种带有特定参数的“静态”函数

我如何从A内部呼叫B? 如何在A中使用B的返回值

A的代码

<cfscript>
     //Call to other custom tag here?:
     //foo = [CUSTOMTAG param="stuff"];
     value = foo;
</cfscript>
<cfoutput>#value#</cfoutput>

你在维护一些旧代码吗?否则,编写用户定义的函数将比使用老式的自定义标记更容易使用和/或测试

虽然自定义标记擅长于生成标记之类的操作,但它并不擅长返回变量

您应该考虑编写用户定义的函数UDF,就像在Java中一样

并不是说自定义标记不能返回值,它只是不像函数那样自然

要从自定义标记返回值,需要使用映射到调用者的变量范围的调用者范围。类似于

<!--- customTag.cfm --->
<cfset caller[attributes.returnVar] = "some value">
并按如下方式调用customTag:

<cf_customTag returnVar="foo">

<cfdump var="#variables.foo#">
只需跟踪谁是调用者,并在调用者范围中设置值,您就可以在自定义标记内、自定义标记内、自定义标记内调用自定义标记


如果您需要将自定义标记的输出捕获到var中,请将自定义标记调用包装到var中。

您是否在维护一些旧代码?否则,编写用户定义的函数将比使用老式的自定义标记更容易使用和/或测试

虽然自定义标记擅长于生成标记之类的操作,但它并不擅长返回变量

您应该考虑编写用户定义的函数UDF,就像在Java中一样

并不是说自定义标记不能返回值,它只是不像函数那样自然

要从自定义标记返回值,需要使用映射到调用者的变量范围的调用者范围。类似于

<!--- customTag.cfm --->
<cfset caller[attributes.returnVar] = "some value">
并按如下方式调用customTag:

<cf_customTag returnVar="foo">

<cfdump var="#variables.foo#">
只需跟踪谁是调用者,并在调用者范围中设置值,您就可以在自定义标记内、自定义标记内、自定义标记内调用自定义标记


如果需要将自定义标记的输出捕获到var中,请将自定义标记调用包装到var中。

下面是我最后要做的。在我的A文件调用中,A调用B:

<cfscript>
b = createObject("component","bName");
returnVal = b.method("paramInfo");
</cfscript>
在我的B文件中

<cfcomponent displayname="bName">
<cffunction name="method" returntype="string" output="false">
<cfargument name="paramName" required="yes" type="string">
<cfscript>
 returnVal = paramName;
</cfscript>
<cfreturn returnVal>
</cffunction>
</cfcomponent>

这就是我最后做的。在我的A文件调用中,A调用B:

<cfscript>
b = createObject("component","bName");
returnVal = b.method("paramInfo");
</cfscript>
在我的B文件中

<cfcomponent displayname="bName">
<cffunction name="method" returntype="string" output="false">
<cfargument name="paramName" required="yes" type="string">
<cfscript>
 returnVal = paramName;
</cfscript>
<cfreturn returnVal>
</cffunction>
</cfcomponent>

很好的评论,亨利。我想知道JMoy是否正在试图找出如何从cfscript中调用他的另一个自定义标记?我不确定我有没有答案。我想实际上我会使用cffunction创建一个函数,调用他的第二个自定义标记,然后在cfscript中调用该函数。。。有点像包装纸。很好的评论,亨利。我想知道JMoy是否正在试图找出如何从cfscript中调用他的另一个自定义标记?我不确定我有没有答案。我想实际上我会使用cffunction创建一个函数,调用他的第二个自定义标记,然后在cfscript中调用该函数。。。有点像包装纸。