【问题标题】:Conditional operator in jQuery templatejQuery 模板中的条件运算符
【发布时间】:2011-06-01 23:45:03
【问题描述】:

新的 jQuery 模板插件是否支持条件(三元)运算符?要根据条件打印简单值,{{if}}/{{else}} 是唯一的选择吗?

我对类似于<?=($reviewed ? 'ham' : 'spam')?>的东西感兴趣

【问题讨论】:

    标签: jquery templates jquery-plugins


    【解决方案1】:

    是的,您可以在${} 模板标签内放置任意函数和表达式:

    评估指定的字段 (属性)在当前数据项上, 或指定的 JavaScript 函数 或表达式。

    ${reviewed ? 'ham' : 'spam'}
    

    所以,你可以这样写一个模板:

    <script id="movieTemplate" type="text/x-jquery-tmpl">
        <!-- Ternary operator to assign a class -->
        <li class="${Year >= 1990 ? 'orange' : 'yellow'}">
            Title: ${Name}.
            {{each Languages}}
                ${$index + 1}: <em>${$value}. </em>
            {{/each}}
        </li>
    </script>
    

    给定这样的 JavaScript 和 JSON 数据:

    var movies = [
    {
        Name: "Meet Joe Black",
        Languages: ["French"],
        Year: 1990
    }, 
    {
        Name: "The Mighty",
        Languages: [],
        Year: 1985
    }, 
    {
        Name: "City Hunter",
        Languages: ["Mandarin", "Cantonese"],
        Year: 1994
    }];
    
    $("#movieTemplate").tmpl(movies).appendTo("#movieList");
    

    这将“橙色”类别应用于年份大于或等于 1990 年的电影,将“黄色”类别应用于年份小于 1990 年的电影。

    这里的工作示例:http://jsfiddle.net/andrewwhitaker/dY43s/

    【讨论】:

    • 工作正常 :-)
    猜你喜欢
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 2012-11-03
    相关资源
    最近更新 更多