2011-02-22 4 views
1

J'ai un composant coldfusion qui est non éditable, ne fait qu'échouer les chaînes, et ne renvoie pas de variable (et il n'y a pas de déclaration return *). Comment puis-je saisir cette chaîne écho et la placer dans une variable avant qu'elle ne soit affichée directement à l'écran? Alors :Composant ColdFusion à Variable

<cfcomponent displayname="Helpz"> 
<cffunction name="OutputString" returnType="void" output="yes"> 
    I love Stack overflow 
</cffunction> 

La chaîne doit être fournie en sortie stocké dans une variable.

Répondre

4

CFSavecontent est ce dont vous avez besoin.

<cfsavecontent variable="myString"><cfset object.outputString() /></cfsavecontent> 

Ensuite, vous pouvez faire ce que vous voulez aveC# myString #.

4
<cfsavecontent variable="foo"> 
<cfset myComponent.outputString()> 
</cfsavecontent> 
1

Il est probablement préférable d'éviter ce type de sortie dans une fonction. Une autre solution serait:

<cfcomponent displayname="Helpz"> 
<cffunction name="getString" returnType="string" output="no"> 
    <cfset var myString = ""> 
    <cfsavecontent variable="myString">I love Stack overflow</cfsavecontent> 
    <cfreturn myString> 
</cffunction> 
</cfcomponent> 

puis en vous ou modèle où êtes la:

<cfoutput>#myCfc.getString()#</cfoutput> 
+0

Tout peut être fait avec de meilleures pratiques, mais cela ne me aide pas quand je n'ai pas accès pour éditer la fonction. – Theopile

Questions connexes