2013-10-21 66 views
0

下面的代碼工作:如何訪問cfscript中的預定義變量?

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

然而,在一個函數中, 「$」 不可用。

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

有沒有人知道在一個函數內實際上等價於$?

同樣,#pluginConfig.getDirectory()#直接在cfoutput中使用。但是,在一個cfscript函數中,它會報告「未知變量pluginConfig」。

感謝您提前指導我朝着正確的方向前進。

+1

你的帖子提出了兩個可能的問題,函數和你正在使用cfscript的事實。要縮小它的範圍,可以使用cffunction和cfreturn標籤寫一個函數,或者在cfscript塊中寫一個$ .currentURL()的writedump。 –

回答

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

你有另一種選擇是通過村範圍和pluginConfig作爲參數傳遞給函數。編寫一個小插件時,這可能是更簡單的方法。但是,當編寫中等或大型插件時,當你一直傳遞這些對象時會有點混亂。

+0

Guust。感謝您的幫助。問候。 – Peter

0

$在某些CF框架(如Mura)中用作特殊的框架變量。您需要弄清楚代碼執行的框架環境(如果有的話)

相關問題