问题
Inside the cfm of the cfmodule, values are returned through the use of Caller scope. If I call a cfmodule inside a function in a CFC, Caller maps to the Variables scope of the CFC correct? Can I return the values into to local scope of the CFC function?
Thanks
回答1:
Yes, to all of the above. A demonstration:
Testing.cfc:
<cfcomponent>
<cfset Variables.Instance = {} />
<cffunction name="checkTheScopeYo" returntype="Struct">
<cfset var LOCAL = {} />
<!--- Call a CFModule --->
<cfmodule template="TestModule.cfm" />
<cfset Variables.theLocal = LOCAL />
<cfreturn Variables />
</cffunction>
</cfcomponent>
TestModule.cfm:
<cfif thisTag.ExecutionMode EQ "end">
<cfset Caller.FromModule = "Set to the Variables scope" />
<cfset Caller.Instance.FromModule = "Set to the Variables.instance variable" />
<cfset Caller.Local.FromModule = "Set to the LOCAL scope" />
</cfif>
Scribble.cfm:
<cfset theResult = CreateObject("component", "Testing").checkTheScopeYo() />
<cfdump var="#theResult#">
The dump shows you that you have access to the local variables within the function, as well as the variables scope of the entire CFC:
struct
CHECKTHESCOPEYO:
[function]
Arguments: none
ReturnType: Struct
Roles:
Access: public
Output:
DisplayName:
Hint:
Description:
FROMMODULE: Set to the Variables scope
INSTANCE:
[struct]
FROMMODULE: Set to the Variables.instance variable
THELOCAL:
[struct]
FROMMODULE: Set to the LOCAL scope
THIS:
[component Testing]
Methods:
CHECKTHESCOPEYO
[function]
Arguments: none
ReturnType: Struct
Roles:
Access: public
Output:
DisplayName:
Hint:
Description:
来源:https://stackoverflow.com/questions/7409797/can-cfmodule-return-values-to-callers-local-scope