0

以下代码有效:

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

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

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

有谁知道函数中实际上相当于 $ 什么?

同样,#pluginConfig.getDirectory()#直接在 cfoutput 中使用时也可以使用。但是,在 cfscript 函数中,它会报告“未知变量 pluginConfig”。

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

4

2 回答 2

1

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

$ = 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 作为参数传递给函数。在编写一个小插件时,这可能是更简单的方法。但是在编写中型或大型插件时,当您一直传递这些对象时会变得有些混乱。

于 2013-10-22T07:26:57.233 回答
0

$ 在某些 CF 框架(如 Mura)中用作特殊的框架变量。您将需要弄清楚您的代码正在执行的框架上下文(如果有)

于 2013-10-21T19:39:05.993 回答