jQuery模板中的条件运算符

Joy*_*abu 7 jquery templates jquery-plugins

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

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

And*_*ker 17

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

计算当前数据项或指定的JavaScript函数或表达式的指定字段(属性).

${reviewed ? 'ham' : 'spam'}
Run Code Online (Sandbox Code Playgroud)

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

<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>
Run Code Online (Sandbox Code Playgroud)

给出这样的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");
Run Code Online (Sandbox Code Playgroud)

对于年龄大于或等于1990年的电影,这种类型为"橙色",对于年龄小于1990年的电影,则为"黄色"类.

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