ForgejComponent
fr

jComponent

Aides pour les données : QUERIFY, STRINGIFY, ENCRYPT, FN, CL, TRANSLATE, UNAUTHORIZED et Thelpers

jComponent 20 · jcomponent@20 jcomponentfrontendutilitiestemplates Exécutée avec jComponent 20
  • QUERIFY([url], object) construit une chaîne de requête : les valeurs null sont 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]) est JSON.stringify() avec deux options : compress: true omet les textes vides, null et false, et rogne les textes ; fields est une liste des noms conservés, une fonction (key, value) qui décide, ou un objet où name: false omet 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é, et DECRYPT(text, [key], [type]) rend la valeur, ou undefined quand 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'appelle value.
  • NOOP, EMPTYARRAY et EMPTYOBJECT (gelés : on ne peut pas les modifier par erreur), MONTHS et DAYS (les noms en anglais) et NOW (un Date que jComponent tient à jour).
  • Listes de codes : CLINIT(name, function(next) {}, [expire], [init]) enregistre une liste que function charge (elle appelle next(value) ; avec un texte au lieu d'une fonction, une adresse comme GET /api/countries/). CL('a,b', callback) charge les listes qui ne le sont pas et stocke chacune dans DEF.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) et TRANSLATE(text) remplace chaque @(text) par sa traduction (le même texte s'il n'y en a pas). La clé est T plus le HASH() du texte en base 36.
  • UNAUTHORIZED(...names) renvoie false quand window.user a l'une des permissions (user.permissions ou user.roles, une liste ou un objet) ou est sa / su, et true sinon (aussi quand il n'y a pas d'utilisateur).
  • Thelpers (le même objet que Tangular.helpers, et Ta est Tangular) contient les aides des modèles : ajoutez-en une avec Thelpers.name = function(value, ...arguments), où this est le modèle, et utilisez-la comme {{ value | name(argument) }}.
public/index.html
<!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