• jTemplates——学习(1)


    这里介绍一个基于jQuery开发的模板引擎。 
    jTemplates目前最新的版本是0.7.8,由tPython开发。官方网站:http://jtemplates.tpython.com 

    两个附件,

    一个是jTemplates官方网站提供的下载包,其中包括jTemplates的说明、jTemplates JS库、jTemplates DOC。 

    另一个是使用jTemplates做的三个DEMO。 

    一 , 简单介绍 

    它是一个基于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: 'cssrain@domain.com'},  
    
          {id: 2, name: '皮特', age: 24, mail: 'cssrain@domain.com'},  
    
          {id: 3, name: '卡卡', age: 20, mail: 'cssrain@domain.com'},  
    
          {id: 4, name: '戏戏', age: 26, mail: 'cssrain@domain.com'},  
    
          {id: 5, name: '一揪', age: 25, mail: 'cssrain@domain.com'}  
    
         ]  
    
        };  
    
        // 附上模板  
    
        $("#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给输出元素 附加模板 和 数据。 

    这样,运行代码后,出现如下图所示界面。 

    用户列表 : 编号89757 
    编号   姓名  年龄  邮箱 
    1        Rain   22    cssrain@domain.com 
    2        皮特   24   cssrain@domain.com 
    3       卡卡   20    cssrain@domain.com 
    4       戏戏   26    cssrain@domain.com 
    5       一揪   25    cssrain@domain.com 


    三 , 加载模板 

    这次把模板放到一个单独的页面中,而不是直接写在页面里。 

    新建一个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: 'cssrain@domain.com'},  
    
         {id: 2, name: '皮特', age: 24, mail: 'cssrain@domain.com'},  
    
         {id: 3, name: '卡卡', age: 20, mail: 'cssrain@domain.com'},  
    
         {id: 4, name: '戏戏', age: 26, mail: 'cssrain@domain.com'},  
    
         {id: 5, name: '一揪', age: 25, mail: 'cssrain@domain.com'}  
    
    ]  
    
    }  


    在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);  
    
     }  
    
    }  
  • 相关阅读:
    Linux常用命令大全详解
    C++语言关键字及注解
    求两数的最大公约数
    ICOP完成端口详解
    C/C++常见面试题
    猴子吃桃问题之《C语言经典案例分析》
    DTD
    DTD
    DTD的使用
    Rust
  • 原文地址:https://www.cnblogs.com/huangcongcong/p/4797540.html
Copyright © 2020-2023  润新知