在这种情况下,浏览器会尝试加载位于{%= imageUrl } 地址的图片,这并不是你向发生的。像这样的例子有很多,一个表达式会导致意想不到的副作用或无效的 HTML。例如,如果是在form中,模板中的input可能post一个实际的值。另一个很好的例子是在<div id="{ = foo %}"/>其中的id属性包含无效的值。
修订历史
2010年2月27日--公布初步的提案;
2010年3月2日--针对社区反馈更新提案;
将renderTemplate() 重命名为 template() ;
将分隔符{{ ... }} 改为[[ ... ]] ;
增加[[! ... ]] 用来显示无编码的HTML;
移除上下文变量和诸如$id()、$index、writeHtml()和write() 的方法;
增加rendering()函数;
增加templateSetup()函数;
2010年3月9日--针对John Resig 的原型和社区的反馈更新提案;
将template() 重命名为render() ;
新增DOM操作(如append());
将表达式中的分隔符改为{%= ... %} ,代码中的分隔符改为{% ... %} ;
删除templateSetup()方法。
2010年3月16日--新增下面的评论章节--Steven Black ;
如有翻译欠妥之处,请发邮件(dexibe@gmail.com)联系本人
译者:Denis deng
译者网站:Denis'Blog
原文地址:jQuery Templates Proposal
<script type="text/javascript">
$(function() {
var products = [
{ name: "Product 1", price: 12.99 },
{ name: "Product 2", price: 9.99 },
{ name: "Product 3", price: 35.59 }
];
$("ul").append("#template", products, { rendered: rendered });
function rendered(context, dom) {
$("span.name", dom).html(context.dataItem.name);
$("span.price", dom).html(context.dataItem.price);
}
});
</script>
<script id="template" type="text/html">
<li><span class="name"></span> - <span class="price"></span></li>
</script>
<ul></ul>