artTemplate模板引擎

来源:http://blog.csdn.net/joyhen/article/details/21233525

编写模板

使用一个type="text/html"script标签存放模板:

<script id="test" type="text/html">
<h1><%=title%></h1>
<ul>
    <%for(i = 0; i < list.length; i ++) {%>
        <li>条目内容 <%=i + 1%> :<%=list[i]%></li>
    <%}%>
</ul>
</script>

模板逻辑语法开始与结束的界定符号为<% 与%>,若<%后面紧跟=号则输出变量内容。

渲染模板

template.render(id, data)

var data = {
    title: ‘标签‘,
    list: [‘文艺‘, ‘博客‘, ‘摄影‘, ‘电影‘, ‘民谣‘, ‘旅行‘, ‘吉他‘]
};
var html = template.render(‘test‘, data);
document.getElementById(‘content‘).innerHTML = html;

嵌入子模板

<%include(id, [data])%>语句可以嵌入子模板,其中第二个参数是可选的,它默认传入当前的数据。

<script id="test" type="text/html">
<h1><%=title%></h1>
<%include(‘list‘)%>
</script>

<script id="list" type="text/html">
<ul>
    <%for(i = 0; i < list.length; i ++) {%>
        <li>条目内容 <%=i + 1%> :<%=list[i]%></li>
    <%}%>
</ul>
</script>
  1 编写模板
  2
  3 使用一个type="text/html"的script标签存放模板:
  4
  5 <script id="test" type="text/html">
  6 <h1><%=title%></h1>
  7 <ul>
  8     <%for(i = 0; i < list.length; i ++) {%>
  9         <li>条目内容 <%=i + 1%> :<%=list[i]%></li>
 10     <%}%>
 11 </ul>
 12 </script>
 13 模板逻辑语法开始与结束的界定符号为<% 与%>,若<%后面紧跟=号则输出变量内容。
 14
 15 渲染模板
 16
 17 template.render(id, data)
 18
 19 var data = {
 20     title: ‘标签‘,
 21     list: [‘文艺‘, ‘博客‘, ‘摄影‘, ‘电影‘, ‘民谣‘, ‘旅行‘, ‘吉他‘]
 22 };
 23 var html = template.render(‘test‘, data);
 24 document.getElementById(‘content‘).innerHTML = html;
 25 嵌入子模板
 26
 27 <%include(id, [data])%>语句可以嵌入子模板,其中第二个参数是可选的,它默认传入当前的数据。
 28
 29 <script id="test" type="text/html">
 30 <h1><%=title%></h1>
 31 <%include(‘list‘)%>
 32 </script>
 33
 34 <script id="list" type="text/html">
 35 <ul>
 36     <%for(i = 0; i < list.length; i ++) {%>
 37         <li>条目内容 <%=i + 1%> :<%=list[i]%></li>
 38     <%}%>
 39 </ul>
 40 </script>
 41 [html] view plain copy 在CODE上查看代码片派生到我的代码片
 42 <!doctype html>
 43 <html>
 44 <head>
 45     <meta charset="UTF-8">
 46     <title>include demo</title>
 47     <script src="template.js"></script>
 48 </head>
 49
 50 <body>
 51     <div id="content"></div>
 52     <div id="tagcontent"></div>
 53     <script id="targettemplate" type="text/html">
 54         <h1><%=title%></h1>
 55         <%include(‘list‘)%>
 56         <%include(‘Tvalue‘)%>
 57     </script>
 58     <script id="list" type="text/html">
 59         <ul>
 60             <%for(var i=0; i<listItems.length; i++){%>
 61                 <li>条目内容<%=i+1%> : <%=listItems[i]%></li>
 62             <%}%>
 63         </ul>
 64     </script>
 65     <script id="Tvalue" type="text/html">
 66         <p>不转义:<%==trans%> or <%=#trans%></p>
 67         <p>默认转义: <%=trans%></p>
 68     </script>
 69
 70     <script>
 71         var data = {
 72             title: ‘嵌入子模板‘,
 73             listItems: [‘文艺‘, ‘博客‘, ‘摄影‘, ‘电影‘, ‘民谣‘, ‘旅行‘, ‘吉他‘],
 74             trans:‘<label style="color:#F00; font-weight:bold;">hello world!</label>‘
 75         };
 76         var logintsorse=‘<h3>template.compile([id], source)将返回一个渲染函数。其中 id 参数是可选的,‘
 77         +‘如果使用了 id 参数,可以使用template.render(id, data)渲染模板。</h3>‘
 78         +‘使用arttemplate来编写:<%=title%>‘;
 79
 80         var html = template.render(‘targettemplate‘, data);
 81
 82         var render = template.compile(logintsorse);
 83         var compilehtml = render(data);
 84
 85         document.getElementById(‘content‘).innerHTML = html+compilehtml;
 86     </script>
 87
 88     <script id="customTag" type="text/html">
 89         <h1><!--[= header]--></h1>
 90         <ul>
 91             <!--[for(var i=0; i<tag.length; i++){]-->
 92                 <li>条目内容<!--[=i+1]--> : <!--[=tag[i]]--></li>
 93             <!--[}]-->
 94         </ul>
 95     </script>
 96     <script>
 97         template.openTag = ‘<!--[‘;
 98         template.closeTag = ‘]-->‘;
 99         var listdata = {
100             header : ‘your study list‘,
101             tag : [‘算法导论‘,‘linq‘,‘c#‘,‘jquery‘,‘django‘,‘python‘]
102         };
103         var resulthtml = template.render (‘customTag‘, listdata);
104         document.getElementById(‘tagcontent‘).innerHTML = resulthtml;
105
106         //
107     </script>
108 </body>
109
110 </html>  
时间: 2024-10-14 03:54:03

artTemplate模板引擎的相关文章

artTemplate模板引擎学习实战

在我的一篇关于智能搜索框异步加载数据的文章中,有博友给我留言,认为我手写字符串拼接效率过低,容易出错.在经过一段时间的摸索和学习之后,发现现在拼接字符串的方法都不在是自己去书写了,而是使用Javascript引擎.而javascript引擎的实质就是帮我们把带有JavaScript代码的伪THTML语句编译为HTML. 如果有不了解的朋友,可以前往这两篇文章: 淘宝购物车页面 PC端和移动端实战 淘宝购物车页面 智能搜索框Ajax异步加载数据 源码地址: GitHub:Uncle-Keith 回

在Express中配置使用art-template模板引擎

先安装需要使用的包 cnpm install --save art-templatecnpm install --save express-art-template 配置(官网案例) var express = require('express') var express = require('express'); var app = express();//配置使用art-template模板引擎//第一个参数表示,当渲染以 .art 结尾时使用art-template模板引擎//expres

Node学习之(第三章:art-template模板引擎的使用)

前言 大家之前都有使用过浏览器中js模板引擎,其实在Node.js中也可以使用模板引擎,最早使用模板引擎的概念是在服务端新起的. art-template art-template是一款高性能的JavaScript 模板引擎,不仅可以在浏览器(前端)使用,同时也可以在Node中使用. GitHub地址:art-template 文档:官方中文 本章节我们来探讨下Node中使用art-template模板引擎生成一个标准的HTML文档. 主体 art-template原理就是将一个字符串数据按照模

artTemplate模板引擎的源码拜读

最初接触的模板引擎还是基于node的ejs,当时觉得很神奇原来还可以这么玩,后来随着学习的深入,使用过jade,doT等,当然还有一些比较火的诸如juicer.underscore还没有深入接触,直到今年上半年由于项目需要就想着要不试试腾讯的artTemplate,感觉牛逼也吹的挺响的.开始了解后,觉得它比我之前使用过的jade.doT都好用,调试神马的也方便很多,采用预编译的方式也让性能非常优越. 其实看了源码后简单的总结出来就是这么一句话:就是先获取html中对应的id下得innerHTML

artTemplate模板引擎源码拜读

最初接触的模板引擎还是基于node的ejs,当时觉得很神奇原来还可以这么玩,后来随着学习的深入,使用过jade,doT等,当然还有一些比较火的诸如juicer.underscore还没有深入接触,直到今年上半年由于项目需要就想着要不试试腾讯的artTemplate,感觉牛逼也吹的挺响的.开始了解后,觉得它比我之前使用过的jade.doT都好用,调试神马的也方便很多,采用预编译的方式也让性能非常优越. 其实看了源码后简单的总结出来就是这么一句话:就是先获取html中对应的id下得innerHTML

art-template模板引擎高级使用

一.结合express的基本使用 // npm下载express/art-template/express-art-tempalte,并且加载 var express=require('express'); var path=require('path'); var app=express(); // 配置(express-art-template是express来整合art-templatedao的,虽然不用加载art-template,但是也必须安装) app.engine('html',r

Express使用art-template模板引擎

第一步:安装 npm install --save art-template npm install --save express-art-template 第二步:指定.html使用的解析引擎(官方给出的是art) app.engine('解析文件的后缀名', require('express-art-template')) 第三步:使用模板进行传值 app.get('/', function (req, res) { res.render('index.html', { user: { na

arttemplate模板引擎有假数据返回数据多层内嵌的渲染方法

1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-sca

art-template模板引擎循环嵌套

①首先引入 <script src="js/art-template" type="text/javascript" charset="utf-8"></script> ②确定要插入的位置  <div id="my"></div> ③新建一个 script标签   注意标签的type   type="text/html" ④新建一个 script标签 <