zoukankan      html  css  js  c++  java
  • template.js 数据渲染引擎

    template.js 数据渲染引擎

    template.js是一款JavaScript模板引擎,用来渲染页面的。

    原理:提前将Html代码放进编写模板

    <script id="tpl" type="text/html"></script>

    中,当需要渲染页面时,在js里这样调用:

    var tpl = document.getElementById('tpl').innerHTML; template(tpl, data});

    template.js开始标签默认为<%,结束标签默认为%>,显示数据为<%= i %>。

    下面是使用template.js v0.7.1版本的实验结果:

    1、遍历数组显示数据:

    复制代码
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <div id="wp"></div>
        <script id="tpl" type="text/html">
          <ul>
           <%for(var i in items){%>   
           <li>
            name:<%=items[i].name%>    val:<%=items[i].val%>
        </li>
        <%}%>
    </ul>
    </script>
    <script src="../template.js"></script>
    <script>
      var data={
        items:[{'name':'名字一','val':'数据一'},
        {'name':'名字二','val':'数据二'},
        {'name':'名字三','val':'数据三'},
        {'name':'名字四','val':'数据四'}
        ]
    }
    var html = template(document.getElementById('tpl').innerHTML,data);
    document.getElementById('wp').innerHTML = html;
    </script>
    </body>
    </html>
    复制代码

    2、模拟子模板

    复制代码
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>模拟子模版</title>
    </head>
    <body>
        <div id="wp"></div>
    
        <script id="tpl" type="text/html">
           <h1>国内新闻</h1>
           <%:=newsListTpl({list: list1, tpl: childTpl})%>
           <h1>国际新闻</h1>
           <%:=newsListTpl({list: list2, tpl: childTpl})%>
       </script>
    
       <script id="child-tpl" type="text/html">
        <ul>
            <% for(i in list){ %>
            <li><%=list[i].title%>   <%=list[i].desc%></li>
            <% } %>
        </ul>
    </script>
    <script src="../template.js"></script>
    <script>
        var childTpl = template(document.getElementById('child-tpl').innerHTML);
        var data={
            newsListTpl: childTpl,
            list1: [
            {title: '国内标题1', desc: '国内描述1'},
            {title: '国内标题2', desc: '国内描述2'},
            {title: '国内标题3', desc: '国内描述3'},
            ],
            list2: [
            {title: '国际标题1', desc: '国际描述1'},
            {title: '国际标题2', desc: '国际描述2'},
            {title: '国际标题3', desc: '国际描述3'},
            ],
        }
        console.log(data);
        var html = template(document.getElementById('tpl').innerHTML,data);
        document.getElementById('wp').innerHTML = html;
    
    </script>
    </body>
    </html>
    复制代码

    3、子模板里面的子模板

    复制代码
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>模拟子模版</title>
    </head>
    <body>
        <div id="wp"></div>
    
        <script id="tpl" type="text/html">
         <h1>国内新闻</h1>
         <%:=listTpl({list: list1, tpl: subChildTpl})%>
         <h1>国际新闻</h1>
         <%:=listTpl({list: list2, tpl: subChildTpl})%>
     </script>
    
     <script id="child-tpl" type="text/html">
        <ul>
            <% for(i in list){ %>
                <%:=tpl(list[i])%>
            <% } %>
        </ul>
    </script>
    <script id="sub-child-tpl" type="text/html">
        <li>
            <%=title%>  <%=desc%>
        </li>
    </script>
    <script src="../template.js"></script>
    <script>
        var childTpl = template(document.getElementById('child-tpl').innerHTML);
        var subChildTpl = template(document.getElementById('sub-child-tpl').innerHTML);
        var data={
            listTpl: childTpl,
           newsChildTpl:subChildTpl,
            list1: [
            {title: '国内标题1', desc: '国内描述1'},
            {title: '国内标题2', desc: '国内描述2'},
            {title: '国内标题3', desc: '国内描述3'},
            ],
            list2: [
            {title: '国际标题1', desc: '国际描述1'},
            {title: '国际标题2', desc: '国际描述2'},
            {title: '国际标题3', desc: '国际描述3'},
            ],
        }
        console.log(data);
        var html = template(document.getElementById('tpl').innerHTML,data);
        document.getElementById('wp').innerHTML = html;
    
    </script>
    </body>
    </html>
    复制代码
  • 相关阅读:
    (转)WCF中的REST是什么
    DrpList
    IIS代码管理(1):遍历应用程序池和属性
    rdp,ListBox,Drp
    在.NET中杀死Word,Excel等进程
    IIS代码管理(2):创建应用程序池和属性
    防止用户重复登录
    asp.net2.0的几种自动生成脚本的原理以及应用
    工厂模式new问题
    我们需要什么样的字段类型?
  • 原文地址:https://www.cnblogs.com/s313139232/p/9474838.html
Copyright © 2011-2022 走看看