网络编程
位置:首页>> 网络编程>> JavaScript>> jQuery模板提案(12)

jQuery模板提案(12)

作者:dishuipiaoxiang 来源:Denis'Blog 发布时间:2010-03-30 18:27:00 

标签:jquery,模板,Javascript,对象

无表达式模板

如果你不想任何诸如{%=....%}的表达式出现在模板中,你可以在模板实例中使用rendered函数动态的为一个元素赋值。例如,下面模板显示产品清单。注意,模板只包含HTML标记,没有表达式。


<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>


讨论(Discussion)

这些都是在论坛讨论中提出的问题。

HTML编码

在目前的提案中,数据项默认是不被编码的。这意味着,除非你采取额外的行为,用模板显示用户提交的数据的文档将为跨站点脚本(XSS)攻击大开门户。在早期的提案中,我们讨论为HTML编码内容创建一个诸如{!productName }特别分隔符。在目前的提案中,我们建议使用text()模板函数,而不是用{%= text(productName) %} 。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com