我们前端在写小程序和vue等页面时,经常用到模板组件,不同地方调用同样的布局,数据不一样传入就行,可是你不知道的是,html通过script也可以制作模板组件,在需要的时候调用。很多人不知道而已,这个秘密被我发现了,啊哈哈哈。
为了快速测试,我用了jquery控制模板,后面谁用到了可以改成原生的就行:
<script id="tm" type="text/html">
<h1>{title}</h1>
<p>{infoMsg}</p>
</script>
正则过滤 传数据
<script type="text/javascript">
var data = {
'title': '123456',
'infoMsg':'内容详情'
}
var reg = new RegExp("\\{([^\\[\\]]*?)\\}", 'igm'); //i g m是指分别用于指定区分大小写的匹配、全局匹配和多行匹配。
var html = $("#tm").html()
var source = html.replace(reg, function (node, key) { return data[key]; });
$(".box").append(source)
</script>
全部代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="../css/qux/jquery-1.8.3.min.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div class="box">
</div>
<script id="tm" type="text/html">
<h1>{title}</h1>
<p>{infoMsg}</p>
</script>
<script type="text/javascript">
var data = {
'title': '123456',
'infoMsg':'内容详情'
}
var reg = new RegExp("\\{([^\\[\\]]*?)\\}", 'igm'); //i g m是指分别用于指定区分大小写的匹配、全局匹配和多行匹配。
var html = $("#tm").html()
var source = html.replace(reg, function (node, key) { return data[key]; });
$(".box").append(source)
</script>
</body>
</html>