模板引擎介绍
什么是模板引擎
模板引擎是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档.其本质是利用正则表达式,替换模板当中预先定义好的标签.
ArtTemplate模板引擎介绍
原生语法
- 使用原生语法,带入
template-native.js
文件 - 表达式 <% 与 %> 符号包裹起来的语句则为模板的逻辑表达式。
- 输出表达式 对内容编码输出
<%=content%>
不编码输出<%=#content%>
- 逻辑 支持使用js原生语法
- 模板包含表达式
用于嵌入子模板<% include('template_name') %>
子模板默认共享当前数据,亦可以指定数据<% include('template_name', news_list) %>
<script id="test" type="text/html">
<%if(admin){%>
<%include('admin_content')%>
<%for (var i=0;i<list.length;i++) {%>
<div><%=i%>. <%=list[i].user%></div>
<%}%>
<%}%>
</script>
简洁语法
- 使用简洁语法,引入
template.js
文件 - 表达式 {{ 与 }} 符号包裹起来的语句则为模板的逻辑表达式。
- 输出表达式 对内容编码输出
{{=content}}
不编码输出{{#content}}
- 条件表达式
{{if admin}}
<p>admin</p>
{{else if code > 0}}
<p>master</p>
{{else}}
<p>error!</p>
{{/if}}
- 遍历表达式
{{each list as value index}}
<li>{{index}} - {{value.user}}</li>
{{/each}}
//简写
{{each list}}
<li>{{$index}} - {{$value.user}}</li>
{{/each}}
- 模板包含表达式
用于嵌入子模板{{include 'template_name'}}
子模板默认共享当前数据,亦可以指定数据{{include 'template_name' news_list}}
渲染数据到页面
模板生成好的页面元素template("id",data)