ForgejComponent
nl

jComponent

Datahelpers: QUERIFY, STRINGIFY, ENCRYPT, FN, CL, TRANSLATE, UNAUTHORIZED en Thelpers

jComponent 20 · jcomponent@20 jcomponentfrontendutilitiestemplates Uitgevoerd met jComponent 20
  • QUERIFY([url], object) bouwt een querystring: null-waarden worden overgeslagen, arrays worden met komma's samengevoegd, datums worden ISO-teksten en alles wordt gecodeerd. Met een url wordt hij eraan toegevoegd (? of &), ook na een methode zoals in 'POST /api/x'.
  • STRINGIFY(object, [compress], [fields]) is JSON.stringify() met twee opties: compress: true laat lege teksten, null en false weg en trimt de teksten; fields is een lijst met de namen die blijven, een functie (key, value) die beslist, of een object waarin name: false een veld weglaat.
  • ENCRYPT(value, [key], [type]) verandert een tekst of een object in een hexadecimale tekst die eindigt met een controle van de sleutel, en DECRYPT(text, [key], [type]) geeft de waarde terug, of undefined wanneer sleutel of type niet gelijk zijn. Het is een versluiering voor de browser, geen beveiliging: iedereen kan het zonder de sleutel lezen.
  • FN('n => n * 2') compileert een expressie tot een functie en onthoudt haar; zonder => is de tekst de body en heet het argument value.
  • NOOP, EMPTYARRAY en EMPTYOBJECT (bevroren: ze kunnen niet per ongeluk worden gewijzigd), MONTHS en DAYS (de namen in het Engels) en NOW (een Date die jComponent actueel houdt).
  • Codelijsten: CLINIT(name, function(next) {}, [expire], [init]) registreert een lijst die function laadt (hij roept next(value) aan; met een tekst in plaats van een functie een adres zoals GET /api/countries/). CL('a,b', callback) laadt de lijsten die niet geladen zijn en slaat elk op in DEF.cl.name (en in de status op dat pad); CLRELOAD(name, callback) laadt ze opnieuw.
  • Vertaling: LOCALIZE(text) laadt een woordenboek in het formaat van de resourcebestanden van Total.js (key : translation, één per regel, // voor commentaar) en TRANSLATE(text) vervangt elke @(text) door zijn vertaling (dezelfde tekst als die er niet is). De sleutel is T plus de HASH() van de tekst in basis 36.
  • UNAUTHORIZED(...names) geeft false terug wanneer window.user een van de rechten heeft (user.permissions of user.roles, een lijst of een object) of sa / su is, en anders true (ook wanneer er geen gebruiker is).
  • Thelpers (hetzelfde object als Tangular.helpers, en Ta is Tangular) bevat de helpers van de sjablonen: voeg er een toe met Thelpers.name = function(value, ...arguments), waarbij this het model is, en gebruik hem als {{ 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>
Probeer het in je browser

Bewerk het voorbeeld en voer het uit. Het draait in een geïsoleerd frame in je browser; er wordt niets naar onze server gestuurd.

Voorbeeld