Datahelpers: QUERIFY, STRINGIFY, ENCRYPT, FN, CL, TRANSLATE, UNAUTHORIZED en Thelpers
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])isJSON.stringify()met twee opties:compress: truelaat lege teksten,nullenfalseweg en trimt de teksten;fieldsis een lijst met de namen die blijven, een functie(key, value)die beslist, of een object waarinname: falseeen veld weglaat.ENCRYPT(value, [key], [type])verandert een tekst of een object in een hexadecimale tekst die eindigt met een controle van de sleutel, enDECRYPT(text, [key], [type])geeft de waarde terug, ofundefinedwanneer 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 argumentvalue.NOOP,EMPTYARRAYenEMPTYOBJECT(bevroren: ze kunnen niet per ongeluk worden gewijzigd),MONTHSenDAYS(de namen in het Engels) enNOW(eenDatedie jComponent actueel houdt).- Codelijsten:
CLINIT(name, function(next) {}, [expire], [init])registreert een lijst diefunctionlaadt (hij roeptnext(value)aan; met een tekst in plaats van een functie een adres zoalsGET /api/countries/).CL('a,b', callback)laadt de lijsten die niet geladen zijn en slaat elk op inDEF.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) enTRANSLATE(text)vervangt elke@(text)door zijn vertaling (dezelfde tekst als die er niet is). De sleutel isTplus deHASH()van de tekst in basis 36. UNAUTHORIZED(...names)geeftfalseterug wanneerwindow.usereen van de rechten heeft (user.permissionsofuser.roles, een lijst of een object) ofsa/suis, en anderstrue(ook wanneer er geen gebruiker is).Thelpers(hetzelfde object alsTangular.helpers, enTaisTangular) bevat de helpers van de sjablonen: voeg er een toe metThelpers.name = function(value, ...arguments), waarbijthishet model is, en gebruik hem als{{ 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> 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