在 CF 中,我可以使用名称变量来调用自定义标签吗?
In CF, can I call a custom tag using a variable for its name?
我想在名称中使用变量来调用自定义标签。像这样
<cfset slist = 'product_categories'>
<cf_cu_show_#slist#>
这让我在 # 上出错。自定义标记 cu_show_product_categories 存在并且在我以常规方式调用它时起作用。
这个想法是建立一个循环列表,调用几个自定义标签。
<cfset slist = 'product_categories'>
<cfif a = 'blogs'>
<cfset slist = listAppend(slist,"blogs")>
</cfif>
<cfif b = 'posts'>
<cfset s_list = listAppend(slist,"last_posts")>
</cfif>
<cfloop list="#slist#" index="i">
<cf_cu_show_#i#>
</cfloop>
我尝试 google,但找不到任何有用的东西。任何帮助,将不胜感激。
您已经发现,在调用自定义标记时使用变量名是无效的。解决此问题的方法是改为使用 <cfmodule>
语法调用自定义标记。在你的第一个场景中,你会这样称呼它。
<cfset slist = 'product_categories'>
<cfmodule template="cu_show_#slist#.cfm">
在下面的示例中,您可以这样修改代码。
<cfset slist = 'product_categories'>
<cfif a = 'blogs'>
<cfset slist = listAppend(slist,"blogs")>
</cfif>
<cfif b = 'posts'>
<cfset s_list = listAppend(slist,"last_posts")>
</cfif>
<cfloop list="#slist#" index="i">
<cfmodule template="cu_show_#i#.cfm">
</cfloop>
这是关于如何使用 <cfmodule>
的文档 link。
https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-tags/tags-m-o/cfmodule.html
我还找到了另一个不错的 link,他们演示了您需要动态提供标签名称的场景,如 https://flylib.com/books/en/2.375.1.420/1/
所示
我想在名称中使用变量来调用自定义标签。像这样
<cfset slist = 'product_categories'>
<cf_cu_show_#slist#>
这让我在 # 上出错。自定义标记 cu_show_product_categories 存在并且在我以常规方式调用它时起作用。 这个想法是建立一个循环列表,调用几个自定义标签。
<cfset slist = 'product_categories'>
<cfif a = 'blogs'>
<cfset slist = listAppend(slist,"blogs")>
</cfif>
<cfif b = 'posts'>
<cfset s_list = listAppend(slist,"last_posts")>
</cfif>
<cfloop list="#slist#" index="i">
<cf_cu_show_#i#>
</cfloop>
我尝试 google,但找不到任何有用的东西。任何帮助,将不胜感激。
您已经发现,在调用自定义标记时使用变量名是无效的。解决此问题的方法是改为使用 <cfmodule>
语法调用自定义标记。在你的第一个场景中,你会这样称呼它。
<cfset slist = 'product_categories'>
<cfmodule template="cu_show_#slist#.cfm">
在下面的示例中,您可以这样修改代码。
<cfset slist = 'product_categories'>
<cfif a = 'blogs'>
<cfset slist = listAppend(slist,"blogs")>
</cfif>
<cfif b = 'posts'>
<cfset s_list = listAppend(slist,"last_posts")>
</cfif>
<cfloop list="#slist#" index="i">
<cfmodule template="cu_show_#i#.cfm">
</cfloop>
这是关于如何使用 <cfmodule>
的文档 link。
https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-tags/tags-m-o/cfmodule.html
我还找到了另一个不错的 link,他们演示了您需要动态提供标签名称的场景,如 https://flylib.com/books/en/2.375.1.420/1/
所示