Aides pour les données : QUERIFY, STRINGIFY, ENCRYPT, FN, CL, TRANSLATE, UNAUTHORIZED et Thelpers
QUERIFY([url], object)construit une chaîne de requête : les valeursnullsont ignorées, les tableaux sont joints par des virgules, les dates deviennent des textes ISO et tout est encodé. Avec une url, elle y est ajoutée (?ou&), aussi après une méthode comme dans'POST /api/x'.STRINGIFY(object, [compress], [fields])estJSON.stringify()avec deux options :compress: trueomet les textes vides,nulletfalse, et rogne les textes ;fieldsest une liste des noms conservés, une fonction(key, value)qui décide, ou un objet oùname: falseomet un champ.ENCRYPT(value, [key], [type])transforme un texte ou un objet en texte hexadécimal qui se termine par une vérification de la clé, etDECRYPT(text, [key], [type])rend la valeur, ouundefinedquand la clé ou le type ne sont pas les mêmes. C'est une obfuscation pour le navigateur, pas de la sécurité : n'importe qui peut le lire sans la clé.FN('n => n * 2')compile une expression en fonction et la mémorise ; sans=>le texte est le corps et l'argument s'appellevalue.NOOP,EMPTYARRAYetEMPTYOBJECT(gelés : on ne peut pas les modifier par erreur),MONTHSetDAYS(les noms en anglais) etNOW(unDateque jComponent tient à jour).- Listes de codes :
CLINIT(name, function(next) {}, [expire], [init])enregistre une liste quefunctioncharge (elle appellenext(value); avec un texte au lieu d'une fonction, une adresse commeGET /api/countries/).CL('a,b', callback)charge les listes qui ne le sont pas et stocke chacune dansDEF.cl.name(et dans l'état à ce chemin) ;CLRELOAD(name, callback)les recharge. - Traduction :
LOCALIZE(text)charge un dictionnaire au format des fichiers de ressources de Total.js (key : translation, un par ligne,//pour les commentaires) etTRANSLATE(text)remplace chaque@(text)par sa traduction (le même texte s'il n'y en a pas). La clé estTplus leHASH()du texte en base 36. UNAUTHORIZED(...names)renvoiefalsequandwindow.usera l'une des permissions (user.permissionsouuser.roles, une liste ou un objet) ou estsa/su, ettruesinon (aussi quand il n'y a pas d'utilisateur).Thelpers(le même objet queTangular.helpers, etTaestTangular) contient les aides des modèles : ajoutez-en une avecThelpers.name = function(value, ...arguments), oùthisest le modèle, et utilisez-la comme{{ value | name(argument) }}.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>jComponent</title>
<link rel="stylesheet" href="//cdn.componentator.com/spa.min@20.css" />
<script src="//cdn.componentator.com/spa.min@20.js"></script>
</head>
<body>
<p class="out"></p>
</body>
</html> Essayez-le dans votre navigateur
Modifiez l'exemple et exécutez-le. Il s'exécute dans un cadre isolé de votre navigateur ; rien n'est envoyé à notre serveur.
Aperçu