首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的coldfusion cfc不能访问包含在application.cfm中的udf?

为什么我的coldfusion cfc不能访问包含在application.cfm中的udf?
EN

Stack Overflow用户
提问于 2009-07-21 20:39:04
回答 1查看 758关注 0票数 1

我在application.cfm中包含了一个日志记录函数(不能使用cflog),并且我的.cfm页面可以访问它,但是我使用的任何组件都会给我一个“变量日志记录器未定义”。错误。

application.cfm

代码语言:javascript
复制
<cfinclude template="logging.cfm">

logging.cfm

代码语言:javascript
复制
<cffunction name="logger" >
 ...
</cffunction>

知道我做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-07-21 21:40:18

因为组件的工作方式是组件不能在其外部看到"variables“作用域,并且当您<cfinclude>您的logging.cfm时,它会将那些函数包含到页面的变量作用域中。为了让您的组件调用这些函数,您可以这样做:

代码语言:javascript
复制
<cfinclude template="logging.cfm">

<cfset request.logger = variables.logger>

然后在你的<cfcomponent>中,你可以调用request.logger(whatever)

但老实说,这对我来说是倒退的。相反,为什么不使用包含名为“Logger.cfc”的函数的日志,然后当您想要记录某些内容时,您只需执行以下操作:

代码语言:javascript
复制
<cfinvoke component="my.Logger" method="log" message="#mylogmessage#">
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1161620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档