这篇文章给大家分享的是有关layui模板引擎的使用方法有那些的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
laytpl 是 JavScript 模板引擎,在字符解析上有着比较出色的表现,欠缺之处在于异常调试上。由于传统意义的前端模板引擎已经变得不再流行,所以 laytpl 后续可能会进行重写,目前方向暂时还没有想好,预计会在layui比较稳定后开始实施。
快速使用
与一般的字符拼接不同的是,laytpl 的模板可与数据分离,集中把逻辑处理放在 View 层,提升代码可维护性,尤其是针对大量模板渲染的情况。
layui.use('laytpl', function(){
var laytpl = layui.laytpl;//直接解析字符
laytpl('{{ d.name }}是一位公猿').render({
name: '贤心'
}, function(string){
console.log(string); //贤心是一位公猿
});
//你也可以采用下述同步写法,将 render 方法的回调函数剔除,可直接返回渲染好的字符
var string = laytpl('{{ d.name }}是一位公猿').render({
name: '贤心'
});
console.log(string);
//贤心是一位公猿
//如果模板较大,你也可以采用数据的写法,这样会比较直观一些
laytpl([
'{{ d.name }}是一位公猿',
'其它字符 {{ d.content }} 其它字符'
].join(''))
});
你也可以将模板存储在页面或其它任意位置:
//第一步:编写模版。你可以使用一个script标签存放模板,如:
<script id="demo" type="text/html">
<h4>{{ d.title }}</h4>
<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 }} | 输出一个普通字段,不转义html | <div>{{ d.content }}</div> |
{{= d.field }} | 输出一个普通字段,并转义html | <h3>{{= d.title }}</h3> |
{{# JavaScript表达式 }} | JS 语句。一般用于逻辑处理。用分隔符加 # 号开头。
注意:如果你是想输出一个函数,正确的写法是:{{ fn() }},而不是:{{# fn() }} | {{#
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); //贤心是一位公猿
});
感谢各位的阅读!关于layui模板引擎的使用方法有那些就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!