Maison > interface Web > js tutoriel > Découvrez comment utiliser les compétences moustache.js_javascript du moteur de modèles Javascript.

Découvrez comment utiliser les compétences moustache.js_javascript du moteur de modèles Javascript.

WBOY
Libérer: 2016-05-16 15:18:00
original
1248 Les gens l'ont consulté

Nous expliquerons en détail comment utiliser le moteur de modèles JavaScript léger Moustache.js.

Exemple simple

function show(t) {
 $("#content").html(t);
}
var view = {
 title: 'YZF',
 cacl: function () {
 return 6 + 4;
 }
};
$("#content").html(Mustache.render("{{title}} spends {{cacl}}", view));
Copier après la connexion

Vous pouvez voir clairement la syntaxe du modèle Moustache. Il vous suffit d'utiliser {{ et }} pour l'inclure et de mettre le nom de l'objet à l'intérieur.

On peut également voir dans cet exemple que si l'attribut spécifié est une fonction, le contenu de la fonction ne sera pas affiché. Au lieu de cela, la fonction sera exécutée en premier, puis le résultat renvoyé sera affiché.

Ne pas échapper aux balises HTML

var view = {
 name: "YZF",
 company: "<b>ninesoft</b>"
};
show(Mustache.render("{{name}} <br /> {{company}} <br />{{{company}}}<br/>{{&company}}", view));
Copier après la connexion

Comme vous pouvez le voir sur cet exemple, Moustache échappera par défaut aux balises html dans la valeur, mais parfois nous n'en avons pas besoin.

Donc ici, nous pouvons utiliser {{{ et }}} pour l'inclure, ou {{ et }} pour l'inclure, alors Moustache n'échappera pas aux balises html à l'intérieur.

Lier la valeur de la sous-propriété

var view = {
 "name": {
 first: "Y",
 second: "zf"
 },
 "age": 21
};
show(Mustache.render("{{name.first}}{{name.second}} age is {{age}}", view));
Copier après la connexion

Je crois que lorsque vous verrez le premier exemple, quelqu'un se demandera si vous pouvez lier des sous-propriétés, si vous regardez assez attentivement. Alors félicitations, c'est maintenant le moyen de résoudre vos besoins, utilisez simplement la sous-propriété via .

Sélection conditionnelle du rendu ou non de la partie spécifiée

var view = {
 person: false
};
show(Mustache.render("eff{{#person}}abc{{/person}}", view));
Copier après la connexion

Il y a toujours des problèmes. Si nous devons encore pouvoir décider de restituer une certaine partie en fonction de la valeur que nous donnons, alors nous pouvons résoudre ce problème maintenant, bien sûr, nous devons également vous rappeler que c'est le cas. pas seulement false, ce qui empêchera le rendu de la partie spécifiée.

null, tableau vide, 0, chaîne vide sont également valides. La syntaxe est relativement simple, utilisez simplement {{#key}} ... {{/key}} pour contrôler le contenu au milieu.

Sortie en boucle

var view = {
 stooges: [
 { "name": "Moe" },
 { "name": "Larry" },
 { "name": "Curly" }
 ]
};
show(Mustache.render("{{#stooges}}{{name}}<br />{{/stooges}}", view));
Copier après la connexion

Apprenez simplement la méthode ci-dessus et vous résoudrez la plupart des problèmes, mais il y aura toujours des problèmes, à savoir la sortie de la boucle, si vous écrivez un par un, je pense que ce sera très irritant, bien sûr, Moustache. ne nous décevra pas, il montre également comment boucler la sortie. Ici, nous produisons un tableau composé d'objets, nous devons utiliser {{.}} au lieu de {{name}}.

Boucle et affiche la valeur renvoyée après traitement par la fonction spécifiée

var view = {
 "beatles": [
 { "firstname": "Johh", "lastname": "Lennon" },
 { "firstname": "Paul", "lastname": "McCartney" }
 ],
 "name": function () {
 return this.firstname + this.lastname;
 }
};
show(Mustache.render("{{#beatles}}{{name}}<br />{{/beatles}}", view));
Copier après la connexion

La sortie de la boucle est disponible, mais nous souhaitons quand même la traiter plus tard. Ensuite, cela répond complètement à vos besoins, car Moustache transmettra les valeurs du tableau à votre fonction et affichera la valeur renvoyée par votre fonction. Ici, nous pouvons voir que la couche la plus externe est un tableau. Tant qu'une fonction est utilisée à l'intérieur, le tableau externe sera transmis en tant que paramètre de cette fonction.

Fonction personnalisée

var view = {
 "name": "Tater",
 "bold": function () {
 return function (text, render) {
   return render(text) + "<br />";
 }
 }
}
show(Mustache.render("{{#bold}}{{name}}{{/bold}}", view));
Copier après la connexion

Nous avons tous utilisé des variables comme sections ci-dessus, alors quel sera l'effet si nous utilisons maintenant des fonctions comme sections ?

Il appellera la fonction renvoyée par notre fonction, en prenant la chaîne d'origine au milieu de la section comme premier paramètre et l'interpréteur par défaut comme deuxième paramètre, nous pourrons alors la traiter nous-mêmes.

Festival des Antonymes

var view = {
 "repos": []
};
show(Mustache.render("{{#repos}}{{.}}{{/repos}}{{^repos}}no repos{{/repos}}", view));
Copier après la connexion

Nous avons également utilisé les sections ci-dessus, mais nous ne pouvons choisir que de sortir ou non une certaine partie. Alors là, on se rattrape.

Si nous utilisons {{^ et }} pour définir une section, alors cette partie ne sera affichée que lorsque la valeur à l'intérieur est vide, nulle, un tableau vide ou une chaîne vide. Ensuite, nous pouvons obtenir l’effet if else.

Quelques modèles

var view = {
 names: [
 { "name": "y" },
 { "name": "z" },
 { "name": "f" }
 ]
};
var base = "<h2>Names</h2>{{#names}}{{>user}}{{/names}}";
var name = "<b>{{name}}</b>";
show(Mustache.render(base, view, { user: name }));
Copier après la connexion

Bien que Moustache fasse gagner beaucoup de temps, nous avons défini de nombreux modèles, mais ils ne peuvent pas être imbriqués et utilisés les uns dans les autres, ce qui le rend également encombrant.

Nous présentons donc également ici comment définir certains modèles à utiliser dans d'autres modèles. La façon d'utiliser d'autres modèles ici est simplement {{>templetename}}.

La plus grande différence est que la méthode Moustache.render a un troisième paramètre.

Modèles précompilés

Mustache.parse(template);
//其他代码
Mustache.render(template,view);
Copier après la connexion

Alors que les modèles présentent des avantages et des inconvénients. La compilation du modèle prend juste du temps, donc si nous savons que nous allons utiliser un certain modèle, nous pouvons précompiler le modèle pour une utilisation ultérieure.

J’espère que cet article sera utile à l’apprentissage de chacun.

Étiquettes associées:
source:php.cn
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