Maison > interface Web > js tutoriel > Introduction aux opérations courantes du moteur de modèles Javascript art-template

Introduction aux opérations courantes du moteur de modèles Javascript art-template

不言
Libérer: 2018-10-27 15:31:37
avant
3432 Les gens l'ont consulté

Cet article vous présente les opérations courantes du modèle d'art du moteur de modèles JavaScript. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. . aide.

art-template
moteur de modèles javascript, site officiel : https://github.com/aui/art-template

Points Pour la syntaxe native et la syntaxe concise, cet article parle principalement de la syntaxe concise

Rendu des données de base
Sortie HTML
Contrôle de processus
Traversal
Appeler la méthode de fonction personnalisée
Introduction au sous-modèle
Rendu des données de base
1. Importez le fichier art-template.js

<script src="template-debug.js"></script>
Copier après la connexion

2 Écrivez le modèle HTML

<script id="test" type="text/html">
    <h1>{{title}}</h1>
</script>
Copier après la connexion
Copier après la connexion

3. et affichez-le Accédez à la page

var data = {
    title:"hello world"
};
var html = template("test",data);
document.getElementById(&#39;content&#39;).innerHTML = html;
Copier après la connexion

et affichez le HTML

<script id="test" type="text/html">
    <h1>{{title}}</h1>
</script>
Copier après la connexion
Copier après la connexion

//Remarque : {{title}} Il s'agit de la sortie d'encodage du contenu et doit être écrit comme {{ #title}} Ceci est le contenu Sortie sans encodage

<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;
Copier après la connexion

Instruction de contrôle de flux (si autre)

{{if value}}
...
{{else if value}}
...
{{else}}
...
{{/if}}
Copier après la connexion

Le contrôle de processus dans art-template est beaucoup plus puissant que les autres modèles , il suffit de regarder l'exemple

<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>
Copier après la connexion

Méthode d'écriture imbriquée

<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>
Copier après la connexion

Instruction de parcours de boucle

{{each name}}
索引:{{$index}}
值:{{$value}}
{{/each}}
Copier après la connexion
<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>
Copier après la connexion

Appeler une méthode personnalisée
via La méthode d'enregistrement template.helper(name, fnCallBack)
peut être appelée directement dans {{}}

<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>
Copier après la connexion

pour appeler le sous-modèle

{{include 'main'}} pour introduisez le sous-modèle et les données sont partagées par défaut
{{include 'main' a}} a est la donnée spécifiée, mais ce doit également être la donnée parent. Vous pouvez regarder l'exemple ci-dessous. Si a ne l'est pas. injecté, le sous-modèle introduit ne pourra pas recevoir les données


<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>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal