【发布时间】:2011-06-01 23:45:03
【问题描述】:
新的 jQuery 模板插件是否支持条件(三元)运算符?要根据条件打印简单值,{{if}}/{{else}} 是唯一的选择吗?
我对类似于<?=($reviewed ? 'ham' : 'spam')?>的东西感兴趣
【问题讨论】:
标签: jquery templates jquery-plugins
新的 jQuery 模板插件是否支持条件(三元)运算符?要根据条件打印简单值,{{if}}/{{else}} 是唯一的选择吗?
我对类似于<?=($reviewed ? 'ham' : 'spam')?>的东西感兴趣
【问题讨论】:
标签: jquery templates jquery-plugins
是的,您可以在${} 模板标签内放置任意函数和表达式:
评估指定的字段 (属性)在当前数据项上, 或指定的 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 年的电影。
【讨论】: