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

もう 1 つのオプションは、Mura Scope と pluginConfig を引数として関数に渡すことです。小さなプラグインを書くときは、これがより簡単な方法かもしれません。しかし、中規模または大規模なプラグインを作成する場合、これらのオブジェクトを常に渡していると、少し面倒になります。

于 2013-10-22T07:26:57.233 に答える