coldfusion - 在 CF 中,我可以使用名称变量来调用自定义标签吗?

标签 coldfusion cfml

我想使用名称中的变量来调用自定义标签。像这样

<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>

我试图谷歌,但找不到任何有用的东西。任何帮助,将不胜感激。

最佳答案

正如您已经发现的那样,在调用自定义标签时使用变量名是无效的。解决这个问题的方法是使用 <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> 的文档链接.
https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-tags/tags-m-o/cfmodule.html

我还找到了另一个不错的链接,它们演示了您需要动态提供标签名称的场景,如 https://flylib.com/books/en/2.375.1.420/1/ 所示。

关于coldfusion - 在 CF 中,我可以使用名称变量来调用自定义标签吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58439046/

相关文章:

ColdFusion - 有没有办法在开发环境中从产品数据库中提取查询详细信息?

coldfusion - CFFILE 写入-如果存在冲突,如何使唯一性?

mysql - 如何将二进制数据从 MySQL 转换为 ColdFusion 11 中的字符串?

coldfusion - 点和方括号表示法在 CF 中的行为不应该相同吗?

javascript - 突出显示搜索结果字符串大小写问题

css - ColdFusion ext-all.css 搞乱了页面格式

ubuntu - HTTP 状态 500 - 无法创建目录/var/lib/tomcat7/webapps/ROOT/WEB-INF/lucee

coldfusion - cfsetting的ColdFusion 9脚本语法是什么?

struct - 有序结构中的最后一个键

arrays - ColdFusion、BigDecimal 不能用作数组