如何在cfscript中访问预定义变量?

时间:2013-10-21 19:27:28

标签: coldfusion mura

以下代码有效:

<cfoutput>#$.currentURL()#</cfoutput>

但是,在函数中,“$”不可用。

<cfscript>
function myTest() {
  return $.currentURL();
}
</cfscript>

有谁知道函数中实际上等价于$?

同样,#pluginConfig.getDirectory()#在cfoutput中直接使用时也能正常工作。但是,在cfscript函数中,它会报告“unknown variable pluginConfig。”

感谢您提前指导我朝着正确的方向前进。

2 个答案:

答案 0 :(得分:1)

在Mura事件范围之外编写代码时(就像使用该函数一样),您必须自己获取Mura Scope($)的实例。这可以使用以下代码完成:

$ = application.serviceFactory.getBean('$');

接下来,您必须使用事件对象,具有值对的结构或“siteID”来初始化实例:

$.init(event);
$.init(myStruct);
$.init(siteID);

pluginConfig的计数相同,您可以通过Mura Scope获得。您必须传递插件的pluginID,moduleID,名称或包:

$.getPlugin(pluginID);
$.getPlugin(moduleID);
$.getPlugin(name);
$.getPlugin(package);

您拥有的另一个选项是将Mura Scope和pluginConfig作为参数传递给函数。在编写小插件时,这可能是更简单的方法。但是当你编写中型或大型插件时,当你一直传递这些对象时会有点麻烦。

答案 1 :(得分:0)

$在某些CF框架(如Mura)中用作特殊框架变量。您需要弄清楚代码在

中执行的框架上下文(如果有的话)