为什么cfinclude中包含的CFM模板需要自己的<cfoutput>包装器?</cfoutput>

时间:2014-01-14 11:02:43

标签: coldfusion coldfusion-10

我正在使用<cfinclude>在母版页中包含各种页面。在我的母版页中,所有正文内容都包含在<cfoutput>标记中。但是我注意到,经过测试,包含的.cfm页面根本看不到<cfoutput>标签,因此不显示动态数据。

<body>
  <cfoutput>
  <cfinclude template="page1.cfm" />
  <cfinclude template="page2.cfm" />
  <cfinclude template="page3.cfm" />
  </cfoutput>
</body>

在上面的示例中,包含动态数据的附带模板将无法正常显示。要解决这个问题,我必须在每个CFM文件中添加<cfoutput>个标签。为什么他们不能使用身体内已经存在的<cfoutput>标签?

2 个答案:

答案 0 :(得分:5)

因为每个CFML文件是单独编译的,并且是否在编译时确定是否输出内容,而不是运行时。

答案 1 :(得分:1)

抛开ColdFusion的工作原理,你想要这样做。使用像CFINCLUDE这样的东西就是你可以编写一段代码并在多种情况下使用它。
把它想象成一个穷人的封装。有人应该能够使用包含的模板,而不会陷入正在包含的模板的平凡细节中。