Home > Web Front-end > JS Tutorial > body text

Introduction to common operations of javascript template engine art-template

不言
Release: 2018-10-27 15:31:37
forward
3388 people have browsed it

This article brings you an introduction to the common operations of the JavaScript template engine art-template. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you. help.

art-template
javascript template engine, official website: https://github.com/aui/art-template

分For native syntax and concise syntax, this article mainly talks about concise syntax

Basic data rendering
Output HTML
Process control
Traversal
Call custom function method
Subtemplate introduction
Basic data rendering
1. Introduce the art-template.js file

<script src="template-debug.js"></script>
Copy after login

2. Write the HTML template

<script id="test" type="text/html">
    <h1>{{title}}</h1>
</script>
Copy after login
Copy after login

3. Insert data into the template and output it to the page

var data = {
    title:"hello world"
};
var html = template("test",data);
document.getElementById(&#39;content&#39;).innerHTML = html;
Copy after login

Output HTML

<script id="test" type="text/html">
    <h1>{{title}}</h1>
</script>
Copy after login
Copy after login

//Note: {{title}} This is the content-encoded output and should be written as {{#title}} This is the content-unencoded output

<script id="test" type="text/html">
    <h1>{{#title}}</h1>
</script>

var data = {
    title:"<p>hello world</p>"
};
var html = template("test",data);
document.getElementById(&#39;content&#39;).innerHTML = html;
Copy after login

Process control statement (if else)

{{if value}}
...
{{else if value}}
...
{{else}}
...
{{/if}}
Copy after login

The process control in art-template is much more powerful than other templates, just look at the example

<script id="test" type="text/html">
    <div>
        {{if bok==22}}
        <h1>线上</h1>
        {{else if bok==33}}
        <h2>隐藏</h2>
        {{else}}
        <h3>走这里</h3>
        {{/if}}
    </div>
</script>
<script>
    var data = {
        "bok":22
    };
    var html = template(&#39;test&#39;,data);
    document.getElementById("app").innerHTML = html;
</script>
Copy after login

Nested writing method

<script id="test" type="text/html">
    <div>
        {{if bok}}
            {{if list.length>=0}}
                {{each list}}
                    <p>{{$index}}:{{$value}}</p>
                {{/each}}
            {{else}}
                <p>没有数据</p>
            {{/if}}
        {{/if}}
    </div>
</script>
<script>
    var data = {
        "bok":true,
        list:["a","b","c"]
    };
    var html = template(&#39;test&#39;,data);
    document.getElementById("app").innerHTML = html;
</script>
Copy after login

Loop traversal statements

{{each name}}
索引:{{$index}}
值:{{$value}}
{{/each}}
Copy after login
<script id="test" type="text/html">
<div>
    <ul>
        {{if c==100}}
            <ul>
                {{each person}}
                    <li>
                        编号:{{$index+1}}--姓名:{{$value.name}}--年龄:{{$value.age}}
                    </li>
                {{/each}}
            </ul>
        {{/if}}
    </ul>
</div>
</script>

<script>
    var data = {
        c:100,
        person:[
            {name:"jack",age:18},
            {name:"tom",age:19},
            {name:"jerry",age:20},
            {name:"kid",age:21},
            {name:"jade",age:22}
        ]
    };
    var html = template("test",data);
    document.getElementById("content").innerHTML = html;
</script>
Copy after login

Call custom methods
Register methods through template.helper(name,fnCallBack)
Can be called directly in {{}}

<script id="test" type="text/html">
<div>
    {{if c==100}}
        <ul>
            {{each person}}
                <li>姓名:{{$value.name}}--性别:{{show($value.sex)}}</li>
            {{/each}}
        </ul>

    {{/if}}
</div>
</script>
<script>
    var data = {
        c:100,
        person:[
            {name:"jack",age:18,sex:1},
            {name:"tom",age:19,sex:0},
            {name:"jerry",age:20,sex:0},
            {name:"kid",age:21,sex:1},
            {name:"jade",age:22,sex:0}
        ]
    };
    //自定义函数
    template.helper("show",function(sex){
        console.log(sex);//同样可以打印日志到控制台
        if(sex==0){
            return "男"
        }else if(sex==1){
            return "女"
        }
    });
    var html = template("test",data);
    document.getElementById("app").innerHTML = html;
</script>
Copy after login

Calling subtemplates

{{include 'main'}} introduces subtemplates, the data is shared by default
{{include 'main' a}} a is to specify the data, but it must also be the parent For data, you can take a look at the following example. If a is not injected, the introduced subtemplate will not be able to receive data


<script src="template-debug.js"></script> <script> var data = { person:[ {name:"jack",age:18}, {name:"tom",age:19}, {name:"jerry",age:20}, {name:"kid",age:21}, {name:"jade",age:22} ], a:{ list:[&#39;文艺&#39;, &#39;博客&#39;, &#39;摄影&#39;, &#39;电影&#39;, &#39;民谣&#39;, &#39;旅行&#39;, &#39;吉他&#39;] } }; var html = template("test",data); document.getElementById("app").innerHTML=html; </script>
Copy after login

The above is the detailed content of Introduction to common operations of javascript template engine art-template. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:csdn.net
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template