【发布时间】:2012-02-01 17:02:13
【问题描述】:
我正在使用 ColdFusion 8.0.1。
我创建了一个 UDF 库并将其放入 CFC。我像这样在 APPLICTION 范围内加载库:
// CREATE STRUCTURE OBJECTS
if (not isDefined("APPLICATION.AppOBJ") or not isStruct(APPLICATION.AppOBJ)) {
APPLICATION.AppOBJ = structNew();
APPLICATION.AppOBJ.udf_library = createObject("component", "udf.udf_library");
}
图书馆工作得很好!但我想减少访问功能所需的代码,以缩短参考。目前,我必须访问这样的功能:
APPLICATION.AppOBJ.udf_library.myFunction();
我希望能够将此库对象引用为“UDF”,如下所示:
UDF.myFunction();
在另一个 ColdFusion 9 项目中(同样,这是一个 CF8 项目!),我可以在创建 ojbect 后立即执行此操作
<cfset udf = APPLICATION.AppOBJ.udf_library>
在当前项目中,这在 application.cfm 文件中不起作用。但是,当我将它放在正在使用的页面上时,它确实有效。
我的问题是,我可以将最后一行代码放在上游多远才能使变量在应用程序的任何页面上都可用?这种东西CF8和CF9有区别吗?区别是因为我在 application.CFM 和 application.CFC 中工作吗?
谢谢!!!
-- 编辑 -- 更多信息 ---
我尝试访问 APPLICATION.AppOBJ.udf_library 对象的文件位于自定义标记中。有关系吗?
-- 答案 -- 感谢 MICAH 和 BEN NADEL ---
【问题讨论】:
-
在 Application.cfm 中设置 udf 变量时是否出错?如果是这样,错误是什么?
-
您确定 application.cfm 正在触发这行代码吗?你在 application.cfm 中的任何东西都会在页面被处理之前运行,但通常你会在相当多的代码周围添加初始化控件。
-
@JakeFeasel 我在 application.cfm 中添加这个时没有收到错误:
。 -
Ben Nadel 提出了一个有趣的方法,它允许您访问 UDF,就好像它们是内置函数一样:bennadel.com/blog/…
标签: coldfusion coldfusion-9 coldfusion-8 cfc