jQuery模板中的条件运算符

时间:2010-12-31 12:32:04

标签: jquery templates jquery-plugins

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

我对类似<?=($reviewed ? 'ham' : 'spam')?>

的内容感兴趣

1 个答案:

答案 0 :(得分:17)

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

  

评估指定的字段   (属性)当前数据项,   或指定的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/