我有一个名称为
的页面summary.cfm
在里面:
<cfinclude template="view/totals.cfm>
view / totals.cfm
在里面:
variables.grandTotalHTML = invoke("viewtotals, "doSummary", {...});
view / viewtotals.cfc
里面
<cfmodule template="summarytemplate.cfm" ...>
<!--- database is not passed in here --->
view / summarytemplate.cfm
我们里面有
param attributes.database = session.database;
...
databaseoverride = attributes.database;
...
<cfquery name="qData">
SELECT *
FROM [#variables.databaseoverride#]
...
</cfquery>
现在的问题
我不知道databaseoverride的来源。
viewtotals.cfc
中的变量?答案 0 :(得分:2)
模块级别的变量作用域是模块本地的。模块中无作用域的变量在变量范围内。
此行
databaseoverride = attributes.database;
等同于
variables.databaseoverride = attributes.database;
所以要设置此处使用的值
<cfquery name="qData">
SELECT *
FROM [#variables.databaseoverride#]
...
</cfquery>
答案 1 :(得分:1)
(评论太久了)
只需详细说明Dan's answer:
summary.cfm
VARIABLES
范围view / totals.cfm
VARIABLES
范围view / viewTotals.cfc
它的VARIABLES
作用域与任何调用模板(summary.cfm和view / totals.cfm)不共享
它的VARIABLES
可通过CALLER
作用域(该函数的local
和arguments
作用域可访问到cfmodule )
view / summaryTemplate.cfm
VARIABLES
范围。 CALLER
范围查看/修改父组件(viewTotals.cfc)中的任何范围。 (REQUEST
范围可被以上所有脚本访问。)