我们的代码库有很多以下示例,因为我们允许根据客户的个人需求定制许多基本页面。
<cfif fileExists("/custom/someFile.cfm")>
<cfinclude template="/custom/someFile.cfm" />
<cfelse>
<cfinclude template="someFile.cfm" />
</cfif>
我想创建一个自定义 CF 标记以将其作为一个简单的样板<cf_custominclude template="someFile.cfm" />
,但是我遇到了这样一个事实,即自定义标记实际上是黑盒,因此它们不会拉入标记开始之前存在的局部变量,我可以'不引用任何因导入文件的标记而创建的变量。
例如
<!--- This is able to use someVar --->
<!--- Pulls in some variable named "steve" --->
<cfinclude template="someFile.cfm" />
<cfdump var="#steve#" /> <!--- This is valid, however... --->
<!--- someVar is undefined for this --->
<!--- Pulls in steve2 --->
<cf_custominclude template="someFile.cfm" />
<cfdump var="#steve2#" /> <!--- This isn't valid as steve2 is undefined. --->
有没有办法解决这个问题,或者我应该利用其他语言功能来实现我的目标?