<scriptsrc="dist/template.js"></script>
下载(https://raw.github.com/aui/artTemplate/master/dist/template.js)
编写模版
<scriptid="test"type="text/html"><h1>{{title}}</h1><ul>{{eachlistasvaluei}}<li>索引 {{i + 1}} :{{value}}</li>{{/each}}</ul></script>
渲染数据
var data = {
title: ‘标签‘,
list: [‘文艺‘, ‘博客‘, ‘摄影‘, ‘电影‘, ‘民谣‘, ‘旅行‘, ‘吉他‘]
};
var html = template(‘test‘, data);
document.getElementById(‘content‘).innerHTML = html;
简介语法
{{ifadmin}}{{include ‘admin_content‘}}{{eachlist}}<div>{{$index}}. {{$value.user}}</div>{{/each}}{{/if}}
<script type="text/template" id="xjj">//使用模板样式
<ul>
<% for(var i = 0 ; i < list.length ; i ++){%>//可以直接传对象的属性 //list为对象的属性
<li>我的名字是:<b><%=list[i].name%></b>我的年龄是:<b><%=list[i].age%></b>。</li>
<%};%>
</ul>
</script>
<script src="js/template-native.js"></script>
<script>
/*准备数据*/
var data = {
list:[
{name:‘xjj1‘,age:10},
{name:‘xjj2‘,age:12},
{name:‘xjj3‘,age:16},
{name:‘xjj4‘,age:40}
]
}
/*解析数据成html {model:‘‘}*/
var html = template(‘xjj‘,data);
document.querySelector(‘.box‘).innerHTML = html;
在页面中引用模板引擎:
<scriptsrc="dist/template-native.js"></script>
下载(https://raw.github.com/aui/artTemplate/master/dist/template-native.js)
表达式
<% 与 %> 符号包裹起来的语句则为模板的逻辑表达式。
输出表达式
对内容编码输出:
<%=content%>
不编码输出:
<%=#content%>
编码可以防止数据中含有 HTML 字符串,避免引起 XSS 攻击。
逻辑
支持使用 js 原生语法
<h1><%=title%></h1>
<ul>
<%for(i = 0; i < list.length; i ++) {%>
<li>条目内容 <%=i + 1%> :<%=list[i]%></li>
<%}%>
</ul>
模板不能访问全局对象,公用的方法请参见文档 辅助方法 章节 模板包含表达式
用于嵌入子模板。
<%include(‘template_name‘) %>
子模板默认共享当前数据,亦可以指定数据:
<%include(‘template_name‘, news_list) %>
辅助方法
使用template.helper(name, callback)注册公用辅助方法,例如一个基本的 UBB 替换方法:
template.helper(‘$ubb2html‘, function (content) {
// 处理字符串...
return content;
});
模板中使用的方式:
<% $ubb2html(content)%>
原文:http://www.cnblogs.com/zhanggaojun/p/5743054.html