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

jQuery模板提案(11)

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

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

嵌套模板

利用回调函数,你可以创建其嵌套模板。例如,下面代码显示了如何显示联系人名单,每个联系人有一个或多个电话号码。contactTemplate 用来显示联系人名单,phoneTemplate 用来显示每个电话号码。

<script type="text/javascript">
    $(function() {   
        var contacts = [
            { name: "Dave Reed", phones: ["209-989-8888", "209-800-9090"] },
            { name: "Stephen Walther", phones: ["206-999-8888"] },
            { name: "Boris Moore", phones: ["415-999-2545"] }
        ];
        $("div").append("#contactTemplate", contacts, {rendered:rendered});
    });
    function rendered(context, dom) {
        $("div.phones", dom)
            .append("#phoneTemplate", context.dataItem.phones);
    } 
</script>
<script id="contactTemplate" type="text/html">
 <div>
     {%= name %}
     <div class="phones"></div>
 </div>
</script>
<script id="phoneTemplate" type="text/html">
 <div>
     Phone: {%= $context.dataItem %}
 </div>
</script>
<div></div>

创建插件

假设你想在模板中使用插件--如jQuery UI Datepicker。此外,想象以下,你希望插件显示数据项的值。例如,你希望DatePicker 默认显示数据项的一个date属性。在这种情况下,你需要利用rendered()回调创建插件并用数据项的值初始化插件。

例如,下面的代码显示联系人的名单,rendered() 用来创建一个jQuery UI Datepicker插件,并在模板中的一个input元素中附加插件。DataPicker 的默认值为联系人的生日。

<script type="text/javascript">
    $(function() {
        var contacts = [
            { name: "Dave Reed", birthdate: new Date("12/25/1980") },
            { name: "Stephen Walther", birthdate: new Date("12/25/1977") },
            { name: "Boris Moore", birthdate: new Date("12/25/1934") },
            { name: "Eilon Lipton", birthdate: new Date("12/25/2004") },
            { name: "Assad Safiullah", birthdate: new Date("12/25/1954") }
        ];
        $("div").append("#template", contacts, { rendered: rendered });
    });
    function rendered(context, dom) {
        $("input", dom)
            .datepicker({ defaultDate: context.dataItem.birthdate })
    }    
</script>
<script id="template" type="text/html">
 <div>
     {%= name %}
     <br />
     birthdate: <input />
 </div>
</script>
 
<div></div>

0
投稿

猜你喜欢

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