template.js的使用

一.介绍
1.作用
template.js 一款javascript模板引擎,简单,好用。
提供一套模板语法,用户可以写一个模板区块,每次根据传入的数据,生成对应数据产生的HTML片段,渲染不同的效果。
2.特性:
模版编译,渲染
支持所有主流浏览器及Node(UMD)
JavaScript原生语法
丰富的自定义配置
支持数据过滤
异常捕获功能
功能专一,简单好用
二.基本使用
1.页面中引入

<ul></ul>
<script src="jquery.js"></script>   
<script src="template.js"></script>

2.使用一个type="text/html"的script标签存放模板,或者放到字符串中:

  <script type='html/text' id='tmp'>
        <li>{{name}}</li>
    </script>

3.渲染模板

var obj = {
    name: '么么哒'
}
var html = template('tmp', obj)
console.log(html)
$('ul').html(html)

完整代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script src="../01/jquery.js"></script>
		<script src="../01/template.js"></script>
	</head>
	<body>
		<ul></ul>
	<script type='html/text' id='tmp'>
        <li>{{name}}</li>
    </script>
    
    <script>
    	var obj = {
            name: '么么哒'
        }
        var html = template('tmp', obj)
        $('ul').html(html)
    </script>
	</body>
</html>

三.遍历

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"> 
    <title>Document</title>
    <script src="../01/jquery.js"></script>
    <script src="../01/template.js"></script>
</head>

<body>
    <ul></ul>
    <script type='text/html' id='tmp'>
        {{each arr  item index}}
        <li>索引:{{index}}-----{{item}}</li>
        {{/each}}
    </script>
    <script>
        var arr = [10, 20, 30]
        var obj = {
            arr: arr,
            name: 'zhangsan'
        }
        var html = template('tmp', obj)
        //console.log(html)
        $('ul').html(html)
    </script>
</body>

</html>

四.双重循环

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="./jquery.js"></script>
    <script src="./template.js"></script>
</head>

<body>
    <div></div>
    <script type='html/text' id="tmp">
    {{each list val key}}  
    <h4>索引:{{key}}------- {{val.title}}</h4>
    <ul>
        {{each val.tags }}
        <li>{{$index}}-----{{$value}}</li>
        <!-- $index,$value 只能叫这个名字 -->
        {{/each}}
    </ul>
    {{/each}}
    </script>
    <script>
        window.onload = function () {
            var data = {
                list: [{
                    title: 'xxx1',
                    tags: ['文艺1', '博客1', '摄影1', '电影1']
                },
                {
                    title: 'xxx2',
                    tags: ['文艺2', '博客2', '摄影2', '电影2']
                }]
            }

            var htmls = template("tmp", data)
            console.log(htmls)
            $('div').html(htmls)

        }
    </script>
</body>

</html>

五.交互

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script src="../01/jquery.js"></script>
		<script src="../01/template.js"></script>
	</head>
	<body>
		<input type="text" placeholder="请输入关键字" id='inputs'>
    	<button id='btn'>点击搜索</button>
		<ul></ul>
		<script type="text/html" id="tmp">
			 {{each s  item index}}
		    <li>索引:{{index}}-----{{item}}</li>
		    {{/each}}
		</script>
		<script type="text/javascript">
			$("#btn").click(function(){
				var val = $("#inputs").val()
				$.ajax({
					url:"https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su",
					data: {
	                    wd: val   // wd 只能叫这个名字 因为百度叫这个
	                },
	                dataType: 'jsonp',
	                jsonp: 'cb',   //jsonp 只能cb  因为百度叫这个
	                success:function(res){
	                	console.log(res);
	                	var htmls = template('tmp', res)
                        $('ul').html(htmls)
	                }
				})
			})
		</script>
	</body>
</html>


版权声明:本文为kgcwuli原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。