我有一个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。
答案 0 :(得分:2)
您可以使用 $ {} 模板标记在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:http://jsfiddle.net/GTjXz/1/
编辑:jsfiddle,它在模板中的$ item对象上动态声明新属性:http://jsfiddle.net/GTjXz/2/