zoukankan      html  css  js  c++  java
  • jquery的一个模板引擎-zt

     jQuery-jTemplate.js下载:http://jtemplates.tpython.com/

    一 , 简单介绍
    
     
    
    它是一个基于jQuery开发的javascript模板引擎。它主要的作用如下:
    
    1. 通过JavaScript获取JSON形式的数据;
    
    2. 获取一个HTML模板,与数据相结合,生成页面HTML。
    
    二 , 快速上手
    
    先来看一个简单的例子:
    
    <script type="text/javascript" src="jquery-1.2.6.pack.js"></script>
    <script type="text/javascript" src="jquery-jtemplates.js"></script>
    
    <script type="text/javascript">
       $(document).ready(function() {
        //初始化数据
        var data = {
         name: '用户列表',
         list_id: '编号89757',
         table: [
          {id: 1, name: 'Rain', age: 22, mail: },
          {id: 2, name: "皮特', age: 24, mail: },
          {id: 3, name: "卡卡', age: 20, mail: },
          {id: 4, name: "戏戏', age: 26, mail: },
          {id: 5, name: "一揪', age: 25, mail: }
         ]
        };
        // 附上模板
        $("#result1").setTemplateElement("template");
        // 给模板加载数据
        $("#result1").processTemplate(data);
       });
    </script>
    
    <!-- 模板内容 -->
    <textarea id="template" style="display:none">
       <strong>{$T.name} : {$T.list_id}</strong>
       <table>
            <tr>
          <th>编号</th>
          <th>姓名</th>
                        <th>年龄</th>
          <th>邮箱</th>
        </tr>
        {#foreach $T.table as record}
        <tr>
          <td>{$T.record.id}</td>
          <td>{$T.record.name}</td>
                        <td>{$T.record.age}</td>
          <td>{$T.record.mail}</td>
        </tr>
        {#/for}
       </table>
    </textarea>
    
    <!-- 输出元素 -->
    <div id="result1" ></div>
    
    上面代码中,先导入了jQuery.js,然后导入jtemplates.js。
    
    接下来新建了一个data数据的json对象。
    
    var data = {
         ......
    };
    
    然后在HTMl页面上增加一个 输出元素 和 一个模板元素:
    
    最后在JS给输出元素 附加模板 和 数据。
    
    这样,运行代码后,出现如下图所示界面。
    
    三 , 加载模板
    
    这次把模板放到一个单独的页面中,而不是直接写在页面里。
    
    新建一个template.html,放入以下代码:
    
    <strong>{$T.name} : {$T.list_id}</strong>
    <table>
        <tr>
        <th>编号</th>
        <th>姓名</th>
                <th>年龄</th>
        <th>邮箱</th>
    </tr>
    {#foreach $T.table as record}
    <tr>
        <td>{$T.record.id}</td>
        <td>{$T.record.name}</td>
                <td>{$T.record.age}</td>
        <td>{$T.record.mail}</td>
    </tr>
    {#/for}
    </table>
    
    然后新建一个json文件,名称为cs.json,代码如下:
    
    {
    name: "用户列表",
    list_id: "编号89757",
        table: [
         {id: 1, name: 'Rain', age: 22, mail: },
         {id: 2, name: "皮特', age: 24, mail: },
         {id: 3, name: "卡卡', age: 20, mail: },
         {id: 4, name: "戏戏', age: 26, mail: },
         {id: 5, name: "一揪', age: 25, mail: }
    ]
    }
    
    在jQuery中,可以通过$.ajax()方法来加载 json文件,代码如下:
    
    
    <script type="text/javascript">
    $(function(){
    $.ajax({
       type:       "post",
       dataType:   "json",
       url:        "cs.json",
    success:    function(data){
                        .....
                    }
    });
    });
    </script>
    
    在success回调函数里,首先需要设置模板,然后需要添加数据。如下代码所示:
    
    success:    function(data){
    
                        // 设置模板
                       $("#result1").setTemplateURL("template.html?date="+(+new Date()), null, {filter_data: true});
                        //   加载数据
                        $("#result1").processTemplate(data);
                    }
    }
    
    完整代码如下所示:
    
    $(function(){
    $.ajax({
       type:       "post",
       dataType:   "json",
       url:        "cs.json",
    success:    function(data){
                        $("#result1").setTemplateURL("template.html?date="+(+new Date()), null, {filter_data: true});
                        $("#result1").processTemplate(data);
                    }
    });
    });
    
    运行代码后,也可以得到上图的界面。
    
     
    
    四 ,小结
    
    关于 new Date().getTime()的简写方式:可以参考这篇文章:
    
    http://www.cssrain.cn/article.asp?id=1116
    
    CssRain提供的几个例子,按照官方写的:
    
    点击下载此文件
    
    jtemplates官方首页 :
    
    http://jtemplates.tpython.com/
    
    官方的几个例子:
    1. Simple template (see source as description)
    example1.html
    
    2. Example 1 + multiple elements + parameters
    example2.html
    
    3. Example 1 (Valid XHTML 1.1 !)
    example3.html
    
    4. Multitemplate (Valid XHTML 1.1)
    example4.html
  • 相关阅读:
    Django ORM 之F、Q查询与事务
    Django ORM 之基于对象、双下划线查询
    Django ORM
    Django 模板层
    Django视图层
    Django 路由控制
    Django完成常用四大功能
    Django 框架之前
    HTTP协议
    CSS-学习笔记五
  • 原文地址:https://www.cnblogs.com/wuxl360/p/5454222.html
Copyright © 2011-2022 走看看