好的,我有知道的模板文件需要在<cfoutput>
个标签之间,但在<cfoutput>
周围放置一个<cfinclude>
标签不会工作,<cfmodule>
的任何内容都无效,因为我无法操纵variables
范围。
那么,任何想法 - 无论多么复杂 - 都可以让我包含这样一个模板文件并让它像<cfoutput>
标签之间那样表现?
上下文:这是我正在研究的'框架'并要求每个模板文件以<cfoutput>
标签开头和结尾似乎是真正的浪费,尤其因为少了'coldfusiony'模板文件看起来越好,IMO。
答案 0 :(得分:6)
我打算建议使用render()
选项,但需要注意的是OpenBDML中的一些功能非常糟糕(或者他们想要称之为CFML的版本),我认为应该避免。我无法看到它是如何导致每次请求都不重新编译CFML的,这是一个很大的开销。我认为你最好在保存/读取时将修改标记为<cfoutput>
标记包装/解包,这样生成的CFML只会在文件实际更改时重新编译。这将比阅读时少得多。
根据您的问题提示,我做了a bit of a write up on the CFML compile process,说明为什么在单独的文件中使用<cfoutput>
标签不起作用。道歉,写了很长时间才写完&amp;跟进此处。
答案 1 :(得分:1)
我们在轮子中做的只是用cfoflude包装cfsavecontent标签
<cffunction name="renderInclude">
<cfargument name="template" value="string" required="true">
<cfset var myOutput = "">
<cfsavecontent variable="myOutput"><cfoutput><cfinclude template="#arguments.template#"></cfoutput></cfsavecontent>
<cfreturn trim(myOutput)>
</cffunction>
答案 2 :(得分:0)