用artTemplate已经有一段时间了,也是在比较了几款前端模版引擎之后决定使用它,因为它的使用方便以及性能卓越,所以一直使用,关于它的介绍以及性能大家可以移步http://cdc.tencent.com/?p=5723。
今天这里主要是说下其使用方式,光说不练也是没有任何效果的。artTemplate的github是:https://github.com/aui/artTemplate,大家有需要深度了解的可以去看看,上面有其简单的使用方法,这里我结合自己的使用扩展下。
artTemplate的库分为两种,一个是template.js,一个是template-native.js,第一个是简洁语法版,第二个是原生语法(感觉像JSP)版,两个库的语法是不一样的,大家不要混用,否则会报错的。下面这两种分别做使用说明:
1.简洁语法版:
</pre><pre name="code" class="javascript"><script id="test" type="text/html">
{{if admin}}
{{each list as value index}}
<div>{{index}}:{{value}}</div>
{{/each}}
{{else if}}
条件判断
{{/if}}
</script>
2.原生语法版:
<script id="test" type="text/html">
<%if(admin){%>
<% for(var i=0; i<list.length; i++){%>
<div><%=i%>:<%=list[i].value%></div>
<%}%>
<%}else{%>
<div>没有结果!</div>
<%}%>
</script>
然后在JS中:
var data = {
list : ["第一个元素","第二个元素"]
};
var html = template.render('test',data);
document.getElementById("content").innerHTML = html;
这里放在html中的用法,当然artTemplate还提供了放在javascript文件的中方法,这里需要定义一个变量把模版装起来,然后artTemplate会获取这个变量的模版内容进行渲染:
var apply_list = '{{each list as his}}'+
'<li data-apply-id="{{his.id}}">'+
'<ul class="shop-attr-lst group">'+
'<li>店铺名:<a href="javascript:;">{{his.shop_name}}</a></li>'+
'<li>账户余额:{{his.shop_balance}}元</li>'+
'</ul>'+
'</li>'+
'{{/each}}';
然后在JS中:
var data = {
list:[
{"id":1,"shop_name":"123","shop_balance":5000},
{"id":2,"shop_name":"12344","shop_balance":500}
]
}
var render = template.compile(apply_list);
var html = render(data);
$("#content").html("").html(html);
当然这些只是artTemplate最基础的用法,artTemplate还有更多的功能等你去发现,有了它,前端开发越来越流畅了!