【问题标题】:Define variable within jquery templating?在 jquery 模板中定义变量?
【发布时间】:2011-10-23 11:16:20
【问题描述】:

我有一个 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。

【问题讨论】:

    标签: jquery jquery-templates


    【解决方案1】:

    您可以使用 ${ } 模板标签在 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/

    【讨论】:

    • 嘿,谢谢您的帮助,但这不适用于我的用例。数据是一个数组。检查我的编辑。
    • @Drew H - 看看这篇文章:stackoverflow.com/questions/5056679/…
    • 谢谢。我觉得自己像个白痴,因为我检查了那个页面,但我这样做了:{{var pkgLineId = {{= wrapSpec.wrapSpec2.pkgLineId}} }} 而不是这个 {{var pkgLineId = wrapSpec.wrapSpec2.pkgLineId}}跨度>
    猜你喜欢
    • 2011-06-30
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 2019-06-24
    相关资源
    最近更新 更多