014-模板引擎

1. laytpl是JavScript模板引擎。与一般的字符拼接不同的是, laytpl的模板可与数据分离, 集中把逻辑处理放在View层, 提升代码可维护性, 尤其是针对大量模板渲染的情况。

2. 模块加载名称: laytpl。

3. 模版语法

4. 分隔符

4.1. 如果模版默认的{{ }}分隔符与你的其它模板存在冲突, 你也可以重新定义分隔符:

laytpl.config({
	open: '<%',
	close: '%>'
});
 
// 分割符将必须采用上述定义的
laytpl([
	'<%# var type = "公"; %>' // JS表达式
	,'<% d.name %>是一位<% type %>猿。'
].join('')).render({
	name: '贤心'
}, function(string){
	console.log(string); // 贤心是一位公猿
});

5. 例子

5.1. 代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>模板引擎 - layui</title>

		<link rel="stylesheet" href="layui/css/layui.css">
		<script type="text/javascript" src="layui/layui.js"></script>
	</head>
	<body>
		<!-- 第一步: 编写模版。你可以使用一个script标签存放模板, 如: -->
		<script id="demo" type="text/html">
		  	<h1>{{ d.title }}</h1>
		  	<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>

		<script type="text/javascript">
			layui.use('laytpl', function(){
  				var laytpl = layui.laytpl;

  				// 第三步: 渲染模版
				var data = { // 数据
					"title": "Layui常用模块"
					,"list": [
						{"modname": "弹层", "alias": "layer", "site": "http://www.layer.layui.com"}, 
						{"modname": "日期与时间", "alias": "form", "site": "http://www.layui.com/laydate"}
					]
				};

				var getTpl = demo.innerHTML
				,view = document.getElementById('view');

				laytpl(getTpl).render(data, function(html){
				  	view.innerHTML = html;
				});
		 	});
		</script>
	</body>
</html>

5.2. 效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值