2013-10-21 2 views
0

다음 코드는 작동 : 그러나cfscript에서 미리 정의 된 변수에 액세스하는 방법은 무엇입니까?

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

, 함수 내에서 "$"는 사용할 수 없습니다.

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

함수 내에서 실제로 $와 동일한 기능을 알고있는 사람이 있습니까?

이와 마찬가지로 #pluginConfig.getDirectory()#은 cfoutput에서 직접 사용할 때 작동합니다. 그러나 cfscript 함수 내에서 "unknown variable pluginConfig"를보고합니다.

나를 올바른 방향으로 인도 해 주셔서 감사합니다.

+1

귀하의 게시물은 두 가지 가능한 문제점, 즉 cfscript를 사용하고있는 기능과 사실을 제시합니다. 범위를 좁히려면 cffunction 태그와 cfreturn 태그를 사용하여 함수를 작성하거나 cfscript 블록 내에서 $ .currentURL()을 실행하십시오. –

답변

1

해당 기능을 사용하는 것과 같은 코드를 무라 이벤트 스코프 외부에 작성하면 무라 범위의 인스턴스를 가져와야합니다 ($) 너 자신.

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

동일한에게 :

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

다음은 이벤트 객체 값 쌍을 가진 구조체 또는 'siteID'를 사용하여 인스턴스를 초기화해야합니다 :이 다음 코드를 사용하여 수행 할 수 있습니다 pluginConfig를 계산합니다. 이것은 Mura Scope을 통해 얻을 수 있습니다. 당신은 플러그인의 pluginID,의 moduleID, 이름이나 패키지를 통과해야합니다 :

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

당신이 타 옵션은 함수에 인수로 무라 범위와 pluginConfig를 전달하는 것입니다. 작은 플러그인을 작성할 때이 방법이 더 쉽습니다. 그러나 중형 또는 대형 플러그인을 작성할 때 항상 이러한 객체를 따라갈 때 약간 지저분해질 것입니다.

+0

거위. 도와 줘서 고마워. 문안 인사. – Peter

0

$는 일부 CF 프레임 워크 (예 : Mura)에서 특수 프레임 워크 변수로 사용됩니다. 코드가 실행되고있는 프레임 워크 컨텍스트 (있는 경우)를 찾아야합니다.

관련 문제