template.js与template-web.js

746 阅读2分钟

记一次template使用心得

参考链接:blog.csdn.net/zeng092210/…

最开始在网上看到的大量帖子都说,template.js支持简洁写法{{变量名}}这种,template-native.js支持原生语法<% %>这种。为了编程方便当然希望使用简洁写法,然后我就一路踩了不少坑:

  • 首先是template.js的下载,搜索了超多帖子都说要去github.com/yanhaijing/… 下载,然后点进去之后找了很久都没有找到template.js这个文件,最后才发现它在v1这个文件夹下,最后一个就是。然后下载整个git文件夹,把这个文件拷贝到自己的项目中,再引入,开始写代码,不管怎么写数据就是渲染不成功。
  • 上图中template.js挨着有个temp.html文件,它使用了原生语法,内容不是很整齐我太菜了没看懂,不过运行的结果是渲染成功了的。
  • 然后我又几经波折,看到了上面的“template.js小白入门篇”,真的要感谢一下大兄弟,因为我看完这个之后就成功了,原来template.js只支持原生语法,而template-web.js可以支持原生语法和简洁语法,不过两种语法在使用时不能混淆。

下面开始说我的成功使用经历(我只尝试了下文提到的这种,至于上文说的其他内容我都没有试验过,所以也不知道它们对不对):

template-web.js下载地址:github.com/aui/art-tem… ,在lib文件夹下。同样拷贝到自己项目并引入,需要注意的一点就是数据绑定的方法:

下面是我实验成功的代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script src="js/template-web.js"></script>
    <div id="app"></div>
    <script id="main" type="text/html">
        <h1>{{ author }}</h1>
        <ul>
            {{each list as value i}}
            <li>{{ i+1 }} : {{ value }}</li>
            {{/each }}
    </script>
    <script>
        var data = {
            author: '宫崎骏',
            list:['千与千寻', '哈儿的移动城堡', '幽灵公主', '龙猫']
        }
        var html = template('main', data)
        document.getElementById('app').innerHTML = html
    </script>
</body>
</html>

在浏览器中打开该页面,输出结果如下:

js部分使用jQuery语法也是OK的,注意要提前引入jquery.js文件,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script src="js/template-web.js"></script>
    <script src="js/jquery.js"></script>
    <div id="app"></div>
    <script id="main" type="text/html">
        <h1>{{ author }}</h1>
        <ul>
            {{each list as value i}}
            <li>{{ i+1 }} : {{ value }}</li>
            {{/each }}
    </script>
    <script>
        $(function () {
            var data = {
                author: '宫崎骏',
                list:['千与千寻', '哈儿的移动城堡', '幽灵公主', '龙猫']
            }
            var main = template('main', data)
            // document.getElementById('app').innerHTML = main
            $("#app").html(main)
        })
        
    </script>
</body>
</html>

文中有不恰当的地方欢迎大家指正!