Определить переменную в шаблонах JQuery? - PullRequest
0 голосов
/ 09 августа 2011

У меня есть шаблон 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.

Так что вместо того, чтобы сказать обертки specs.wrapSpec2.pkgLineId.hash, я мог бы просто поместить pkgLineId.hash.

1 Ответ

2 голосов
/ 09 августа 2011

Вы можете использовать тег шаблона $ {} , чтобы встроить функцию или выражение в шаблон jQuery.

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

Глобальные переменные можно передатьшаблон в виде объекта окна:

var year = 2011;

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

Или:

var currentDate = {'year' : 2011};

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

Вот jsfiddle, который выполняет то, что, я думаю, вы пытаетесь сделать:

EDIT: jsfiddle, который динамически объявляет новые свойства объекта $ item в шаблоне: http://jsfiddle.net/GTjXz/2/

...