模板引擎:把js数据转换成html需要的页面,这就是模板引擎需要做的事
    • native原生语法
    1. 准备数据
    2. 把数据转化成html格式的字符串 使用模板引擎 artTemplate 原生语法
        a. 下载原生语法的js文件
        b. 引入在当前页面
        c. 怎么使用?
            i. 创建模板 ,在html页面创建<script type='text/template'></script>
                1. Type必须是text/template或text/html
                2. 写这个的目的是为了让内容不被解析成js执行,当做字符串或html去解释,不会显示在页面中
                3. 给标签设置一个ID用来做标识
                4. 模板的内容是什么?内容里面有没有特殊语法
                5. 模板引擎是有自己的语法的,原生的语法
                6. 可以在模板引擎内写,js语法 <% js语法 %>
                7. 可以拿到数据 。传的对象的属性当做变量使用 {list:data} list是一个变量可以在模板引擎内使用
                8. 获取数据显示出来 <%=属性名称 %>
                9. 在模板引擎内不可使用全局变量。提高性能
                10. 如果想使用全局变量怎么办?两种方式
                11. 第一种:当做数据进行传递 {console:console}
                12. 第二种:helper()
                13. = 获取数据的时候,默认解析出的数据纯字符串
                14. =# 符号获取数据的时候,默认解释出的是html代码在浏览器是会被执行的<script>alert(0);<\/script>
                15. 可以导入 其他模板。Include(’childTemplate‘,{’name‘:’xx‘})
            ii. 把数据使用在模板中
            iii. 有两个参数:模板的ID,数据(特殊要求:必须是对象)
            iv. 返回的内容是什么?是数据转化成的html格式的字符串
            v. 注册模板内部能使用的函数 var a=function(){ } {getConsole:function(){ } }
            vi. 两个参数,第一个参数:方法的名称。第二个参数:方法名对应的函数
    3. 渲染

<script type="text/template" id="childTemplate">
<tr><td colspan="5"><%=name%>我是子模版</td></tr>
</script>
<script type="text/template" id="template">
<% include('childTemplate',{'name':'xgg'}); %>
<% var console = getConsole(); %>
<% console.log('我使用了全局变量'); %>
<% for(var i = 0 ; i < list.length ; i ++){ %>
<% var item = list[i]; %>
<tr>
<td><%=i+1%></td>
<td><%=item.username%></td>
<td><%=item.password%></td>
<td><%=item.age%></td>
<td><%=item.sex%></td>
</tr>
<% } %>
</script>
<script src="js/jquery.min.js"></script>
<script src="js/template-native.js"></script>
<script>
/*1.准备数据*/
var data = [
{"username":"<span style='color:red'>xgg1</span>","password":"123456","age":18,"sex":"男"},
{"username":"xgg2","password":"123456","age":18,"sex":"男"},
{"username":"xgg3","password":"123456","age":18,"sex":"男"}
];
/*2.把数据转化成html格式的字符串 使用模版引擎 artTemplate 原生语法 */
/*2.1 下载 https://github.com/aui/art-template */
/*2.2 引入在当前页面 template-native.js 原生语法的js文件*/
/*2.3 怎么使用模板引擎*/
/*2.3.1 创建模版 在html页面创建 <script type='text/template'><\/script> */
/*2.3.2 把数据使用在模版当中*/
/*2.3.3 有两个参数 第一个参数 模版的ID 第二个参数 数据(特殊要求:必须是对象{})*/
/*2.3.4 返回的内容是什么 是html格式的字符串*/
/*2.3.5 注册模版内部能使用的函数 var a = function(){} {getConsole:function(){}}*/
/*2.3.6 两个参数 第一个参数 方法的名称 第二个参数 方法名对应的函数 */
template.helper('getConsole',function(){
return console;
}); var html = template('template',{list:data});
/*3.渲染*/
$('tbody').html(html);
</script>
    
    • pithy简洁语法
1、准备数据
2、把数据转化成html格式的字符串 使用模板引擎 artTemplate 简洁语法
    i. 引入js文件
    ii. 准备模板
    iii. 调用解析方法
        a. 简洁语法的模板 使用简洁语法
        b. {{ 写简洁语法 }}
        c. Each 需要遍历的数据 默认的 索引和索引对应的值 使用默认变量 $index $value
        d. {{ each model as item i }} 自己指定 索引和对应数据的 变量名称
        e. {{ if }}
        f. 导入 {{ include 'childTemplate' }}
3、渲染

<!--
1.简洁语法的模版 使用简洁的语法
2.{{ 写简洁语法 }}
3. each 需要遍历的数据 默认的 索引和索引对应的数据 使用默认变量 $index $value
4. {{each model as item i }} 自己指定 索引和对应数据的 变量名称
5. {{if}}
6. 导入 {{ include 'childTemplate'}} 注意 最后的地方(}})不能有空格
-->
<script type="text/template" id="childTemplate">
<tr><td colspan="5">我是子模版</td></tr>
</script>
<script type="text/template" id="template"> {{ include 'childTemplate'}} {{each model}}
<tr>
<td>{{$index+1}}</td>
<td>{{$value.username}}</td>
<td>{{$value.password}}</td>
<td>{{$value.age}}</td>
<td>{{$value.sex}}</td>
</tr>
{{/each}} {{each model as item i }}
<tr>
<td>{{if i == 2}} <b>0</b> {{/if}}</td>
<td>{{item.username}}</td>
<td>{{item.password}}</td>
<td>{{item.age}}</td>
<td>{{item.sex}}</td>
</tr>
{{/each}}
</script>
<script src="js/jquery.min.js"></script>
<script src="js/template.js"></script>
<script>
/*1.准备数据*/
var data = [
{"username":"xgg1","password":"123456","age":18,"sex":"男"},
{"username":"xgg2","password":"123456","age":18,"sex":"男"},
{"username":"xgg3","password":"123456","age":18,"sex":"男"}
];
/*2.把数据转化成html格式的字符串 使用模版引擎 artTemplate 简洁语法 */
/*2.1 引入js文件 template.js 简介语法的文件*/
/*2.2 准备模版 */
/*2.3 调用解析方法*/
var html = template('template',{model:data});
/*3.渲染*/
$('tbody').html(html);
</script>

Art-Template模板引擎(原生写法与简洁写法)的更多相关文章

  1. Django基础,Day10 - template 模板引擎与路径设置

    作为一个Web框架,Django需要一个方便的方式来生成动态的HTML.最常见的方法依赖于模板.模板包含所需的HTML输出的静态部分以及一些特殊的语法描述如何插入动态内容. Django框架后端默认支 ...

  2. php模板引擎

    http://baike.baidu.com/link?url=HmXfdJBv3zpCdnZPeaSmZmqDBHlyTBnz9Rmb5it-jf1_NLHfaku6_i8ssUYbnaTQEBD4 ...

  3. art template前端模板引擎

    偶然看到后台有一段代码 采用的是art template的模板引擎 地址为 http://aui.github.io/artTemplate/ 这段代码很简洁 var html = template( ...

  4. JavaScript模板引擎Template.js使用详解

    这篇文章主要为大家详细介绍了JavaScript模板引擎Template.js使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下   template.js 一款 JavaScript 模板引 ...

  5. 前后端数据交互处理基于原生JS模板引擎开发

    json数据错误处理,把json文件数据复制到----> https://www.bejson.com/ 在线解析json 这样能直观的了解到是否是json数据写错,在控制台打断点,那里错误打那 ...

  6. 原生twig模板引擎详解(安装使用)

    最近在学习SSTI(服务器模板注入),所以在此总结一下 0x00 Twig的介绍 什么是Twig? Twig是一款灵活.快速.安全的PHP模板引擎. Twig的特点? 快速:Twig将模板编译为纯粹的 ...

  7. 如何选择Javascript模板引擎(javascript template engine)?

    译者 jjfat 日期:2012-9-17  来源: GBin1.com 随着前端开发的密集度越来越高,Ajax和JSON的使用越来越频繁,大家肯定免不了在前台开发中大量的使用标签,常见到的例子如下: ...

  8. jquery template.js前端模板引擎

    作为现代应用,ajax的大量使用,使得前端工程师们日常的开发少不了拼装模板,渲染模板 在刚有web的时候,前端与后端的交互,非常直白,浏览器端发出URL,后端返回一张拼好了的HTML串.浏览器对其进行 ...

  9. 腾讯模板引擎template

    template.js是一款JavaScript模板引擎,用来渲染页面的. 原理:提前将Html代码放进编写模板  script id="tpl" type="text/ ...

随机推荐

  1. FindBugs——帮助查找隐藏的bug

    FindBugs 1.什么是FindBugs FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题.有了静态分析工具,就可以在不实际运行程序 ...

  2. 【spring-boot】spring-boot整合ehcache实现缓存机制

    EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. ehcache提供了多种缓存策略,主要分为内存和磁盘两级,所以无需担心 ...

  3. 消息编解码Nanopb - protocol buffers

    Google Protocol Buffer 有各种版本的代码包,Python C/C++.JAVA.C.OBJ-C..NET等,嵌入式设备中使用的protobuf版本,我们选择的是nanoprobu ...

  4. HDU1115&&POJ1385Lifting the Stone(求多边形的重心)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1115# 大意:给你个n,有n个点,然后给你n个点的坐标,求这n个点形成的多边形的重心的坐标. 直接套模 ...

  5. hdu2609 How many

    地址:http://acm.hdu.edu.cn/showproblem.php?pid=2609 题目: How many Time Limit: 2000/1000 MS (Java/Others ...

  6. hdu1403 Longest Common Substring

    地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=1403 题目: Longest Common Substring Time Limit: 800 ...

  7. quic协议实践

    QUIC实践 环境Ubuntu14.x86_64 gcc4.8 python2.7 编译QUIC服务器和客户端 下载 git clone https://github.com/google/proto ...

  8. Oracle中的substr()函数详解案例

    1)substr函数格式   (俗称:字符截取函数) 格式1: substr(string string, int a, int b); 格式2:substr(string string, int a ...

  9. windows下Qt5.4.2 for android开发环境配置

    安装包链接: http://yunpan.cn/cFs5tikVA83hK 访问密码 d029   本人所有的软件都安装在D:/Qt   1. 安装 Qt 5.4.2      不在讲述 2, 安装p ...

  10. windows AD域安装及必要设置

    一.安装AD域 运行dcpromo命令,安装AD域. 步骤: 1.win+R 2.dcpromo 图例: 百度百科关于“dcpromo”解释: dcpromo命令是一个“开关”命令.如果Windows ...