2011-08-09 9 views
0

나는 몇 가지 변수를 함께 결합해야하는 jquery 템플릿을 가지고있다.jquery 템플릿 안에 변수를 정의 하시겠습니까?

{{= year}}-{{= month}}-{{= day}}-{{= hour}} 

jqote 템플릿에서 템플릿 내에서 javascript를 사용할 수있다. jquery 템플릿 내에서 가능합니까? 이 문제에 대한 도움을 찾을 수 없습니다. 감사.

또한 Groovy가 $ {}을 좋아하지 않기 때문에 이상한 구문을 사용하고 있습니다.

<script id="mainTemplate" type="text/x-jquery-tmpl"> 
<ul>   
    {{each(i, wrapSpec) data}}   

    <li><a href="#pkgLineTabs_{{= wrapSpec.wrapSpecId}}" id="{{= wrapSpecId}}">{{= wrapSpec.wrapSpec2.pkgLineId.pkgLineTree.treeId.name}} {{= wrapSpec.shortname}} </a></li> 

    {{/each}} 
</ul> 

{{each(i, wrapSpec) data}} 

<div id="pkgLineTabs_{{= wrapSpec.wrapSpecId}}" style="font-size:12px" class="reportTable display {{= wrapSpec.wrapSpec2.pkgLineId.hash}}" title="{{= wrapSpec.wrapSpec2.pkgLineId.hash}}" >  

    {{tmpl(wrapSpec.report) "#dayTemplate"}} 

</div> 

{{/each}} 

jqote 난 그냥 var pkgLineId = wrapSpec.wrapSpec2.pkgLineId 말할 수 있습니다.

따라서 wrapspec.wrapSpec2.pkgLineId.hash 대신 pkgLineId.hash를 넣을 수 있습니다.

답변

2

$ {} 템플릿 태그를 사용하여 함수 또는 표현식을 jQuery 템플릿에 포함 할 수 있습니다. 내가 당신을 어떻게 생각하는지 달성이 여기

var currentDate = {'year' : 2011}; 

var myTemplate = $("<div><b>Year: ${year}</b></div>").template(); 
$.tmpl(myTemplate, currentDate).appendTo("#myDiv"); 

가 jsfiddle입니다 :

var year = 2011; 

var myTemplate = $("<div><b>Year: ${year}</b></div>").template(); 
$.tmpl(myTemplate, window).appendTo("#myDiv"); 

또는 :

http://api.jquery.com/template-tag-equal/

당신은 윈도우 객체의 방법으로 템플릿에 전역 변수를 전달할 수 있습니다 다음을 시도하고 있습니다. http://jsfiddle.net/GTjXz/1/

편집 : 템플릿의 $ item 객체에 대해 새 속성을 동적으로 선언하는 jsfiddle : http://jsfiddle.net/GTjXz/2/

+0

도움을 주셔서 감사합니다.하지만이 기능은 사용 사례와 함께 사용할 수 없습니다. 데이터는 배열입니다. 내 편집을 확인하십시오. –

+0

@Drew H -이 게시물을 확인하십시오. http://stackoverflow.com/questions/5056679/defining-new-variable-within-jquery-template – RoccoC5

+0

감사합니다. 내가 그 페이지를 확인하지만 난이 일을했기 때문에 내가 바보 같은 느낌 : {{var에 pkgLineId = {{= wrapSpec.wrapSpec2.pkgLineId}}}} 대신 이 {{var에 pkgLineId = wrapSpec.wrapSpec2 .pkgLineId}} –

관련 문제