laytpl( Layui 的一款轻量 JavaScript 模板引擎)
laytpl
是 Layui 的一款轻量 JavaScript 模板引擎,在字符解析上有着比较出色的表现。
laytpl是一款颠覆性的JavaScript模板引擎
文档说明
一、模版语法
输出一个普通字段,不转义html: {{ d.field }}
输出一个普通字段,并转义html: {{= d.field }}
JavaScript脚本: {{# JavaScript statement }}
二、内置方法
1):laytpl(template); //核心函数,返回一个对象
var tpl = laytpl(template);
tpl.render(data, callback); //渲染方法,返回渲染结果,支持异步和同步两种模式
a):异步
tpl.render(data, function(result){
console.log(result);
});
b):同步
var result = tpl.render(data);
console.log(result);
2):laytpl.config(options); //初始化配置
options是一个对象
{open: '开始标签', close: '闭合标签'}
3):laytpl.v //获取版本号
注意事项
1.直接引入laytpl.js即可,另外还可直接使用Seajs等模块化加载。
2.无论商业或个人平台都可以任意使用laytpl
3.任何场合下都务必保留来源,请勿剔除laytpl.js头部注释。
使用方式
//第一步:编写模版。你可以使用一个script标签存放模板,如:
<script id="demo" type="text/html">
<h3>{{ d.title }}</h3>
<ul>
{{# layui.each(d.list, function(index, item){ }}
<li>
<span>{{ item.modname }}</span>
<span>{{ item.alias }}:</span>
<span>{{ item.site || '' }}</span>
</li>
{{# }); }}
{{# if(d.list.length === 0){ }}
无数据
{{# } }}
</ul>
</script>
//第二步:建立视图。用于呈现渲染结果。
<div id="view"></div>
//第三步:渲染模版
var data = { //数据
"title":"Layui常用模块"
,"list":[{"modname":"弹层","alias":"layer","site":"layer.layui.com"},{"modname":"表单","alias":"form"}]
}
var getTpl = demo.innerHTML
,view = document.getElementById('view');
laytpl(getTpl).render(data, function(html){
view.innerHTML = html;
});
模板语法
{{ d.field }} 不转义
{{= d.field }} 转义
{{# JavaScript表达式 }}
{{#
var fn = function(){
return '2017-08-18';
};
}}
{{# if(true){ }}
开始日期:{{ fn() }}
{{# } else { }}
已截止
{{# } }}
{{! template !}}
对一段指定的模板区域进行过滤,即不解析该区域的模板。注:layui 2.1.6 新增
<div> {{! 这里面的模板不会被解析 !}}</div>
重新定义模板分隔符
laytpl.config({
open: '<%',
close: '%>'
});
//分割符将必须采用上述定义的
laytpl([
'<%# var type = "公"; %>' //JS 表达式
,'<% d.name %>是一位<% type %>猿。'
].join('')).render({
name: '贤心'
}, function(string){
console.log(string); //贤心是一位公猿
});
参考文献:
模板引擎 laytpl - Layui 文档
https://blog.csdn.net/weixin_30539317/article/details/111967646
https://www.jianshu.com/p/93ab66e6bb73
本文来自博客园,作者:じ逐梦,转载请注明原文链接:https://www.cnblogs.com/ZhuMeng-Chao/p/17433541.html