您的位置:首页 > 其它

artTemplate的简单用法

2017-09-07 18:22 351 查看
在实际开发中,我们会使用模板引擎来提高开发效率。而众多的模板引擎中,artTemplate无论就速度,兼容性还是使用人数上,都占绝对优势。这里我将简单地介绍下artTemplate的常见用法。

对于这其中涉及到的语法,我们只需要记住并且会用即可,不需要知道为什么这样用

用法一:使用渲染模板

需要先使用一个type="text/html"的script标签存放模板

1.简单的json数据

[html]
view plain
copy

<!DOCTYPE html>  
<html>  
    <head>  
        <meta charset="UTF-8">  
        <title></title>  
        <script type="text/javascript" src="js/template.js" ></script>  
    </head>  
    <body>  
        <div id="container"></div>  
        <script type="text/html" id="div">  
            <h1>{{name}}</h1>  
            <h2>{{age}}</h2>  
        </script>  
        <script type="text/javascript">  
            var data = {  
                name:"geekWeb",  
                age:22  
            }  
            var html = template('div',data);  
            document.getElementById("container").innerHTML = html;  
        </script>  
    </body>  
</html>  

注:数据中的k用{{}}包装!

2.带数组的json数据

[html]
view plain
copy

<!DOCTYPE html>  
<html>  
    <head>  
        <meta charset="UTF-8">  
        <title></title>  
        <script type="text/javascript" src="js/template.js" ></script>  
    </head>  
    <body>  
        <div id="container"></div>  
        <script type="text/html" id="div">  
            <h1>{{name}}</h1>  
            <ul>  
                {{each lang as value i}}  
                <li>语言{{i+1}}:{{value}}</li>  
                {{/each}}  
            </ul>  
        </script>  
        <script type="text/javascript">  
            var data = {  
                name:"前端语言",  
                lang:['html','css','js']  
            }  
            var html = template('div',data);  
            document.getElementById("container").innerHTML = html;  
        </script>  
    </body>  
</html>  

注:通过each遍历数组,value和i分别表示值与索引,使用时千万注意:each中value和i的顺序性不能颠倒,先用value后用

3.数组中包含对象的json数据

[html]
view plain
copy

<!DOCTYPE html>  
<html>  
    <head>  
        <meta charset="UTF-8">  
        <title></title>  
        <script type="text/javascript" src="js/template.js" ></script>  
    </head>  
    <body>  
        <div id="container"></div>  
        <script type="text/html" id="div">  
            <h1>{{name}}</h1>  
            <ul>  
                {{each lang}}  
                <li>语言:{{$value.title}} 定义:{{$value.add}}</li>  
                {{/each}}  
            </ul>  
        </script>  
        <script type="text/javascript">  
            var data = {  
                name:"前端语言",  
                lang:[{  
                    title:"html",  
                    add:"超文本标记语言"  
                },{  
                    title:"css",  
                    add:"层叠样式表"  
                },{  
                    title:"javaScript",  
                    add:"添加动态特效"  
                }]  
            }  
            var html = template('div',data);  
            document.getElementById("container").innerHTML = html;  
        </script>  
    </body>  
</html>  

注:使用each遍历不需要value和i,但是在使用值的时候要用$value

用法二:使用渲染函数

不需要先使用script标签存放模板

[html]
view plain
copy

<!DOCTYPE html>  
<html>  
    <head>  
        <meta charset="UTF-8">  
        <title></title>  
        <script type="text/javascript" src="js/template.js" ></script>  
    </head>  
    <body>  
        <div id="container"></div>  
        <script type="text/javascript">  
            var data = {  
                name:"geekWeb",  
                age:22  
            }  
            var source = '<h1>{{name}}</h1>'+'<h2>{{age}}</h2>';  
            var render = template.compile(source);  
            var html = render(data);  
            document.getElementById("container").innerHTML = html;  
        </script>  
    </body>  
</html>  

可以理解成将渲染模板放在source中。其余数据用法一致!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: