Helper per i dati: QUERIFY, STRINGIFY, ENCRYPT, FN, CL, TRANSLATE, UNAUTHORIZED e Thelpers
QUERIFY([url], object)costruisce una stringa di query: i valorinullsono saltati, gli array sono uniti con virgole, le date diventano testi ISO e tutto è codificato. Con un url viene aggiunta ad esso (?o&), anche dopo un metodo come in'POST /api/x'.STRINGIFY(object, [compress], [fields])èJSON.stringify()con due opzioni:compress: trueomette testi vuoti,nullefalse, e rifila i testi;fieldsè una lista dei nomi che si mantengono, una funzione(key, value)che decide, o un oggetto dovename: falseomette un campo.ENCRYPT(value, [key], [type])trasforma un testo o un oggetto in un testo esadecimale che termina con un controllo della chiave, eDECRYPT(text, [key], [type])restituisce il valore, oundefinedquando la chiave o il tipo non coincidono. È un'offuscazione per il browser, non sicurezza: chiunque può leggerlo senza la chiave.FN('n => n * 2')compila un'espressione in una funzione e la ricorda; senza=>il testo è il corpo e l'argomento si chiamavalue.NOOP,EMPTYARRAYeEMPTYOBJECT(congelati: non si possono cambiare per errore),MONTHSeDAYS(i nomi in inglese) eNOW(unDateche jComponent tiene aggiornato).- Liste di codici:
CLINIT(name, function(next) {}, [expire], [init])registra una lista chefunctioncarica (chiamanext(value); con un testo al posto di una funzione, un indirizzo comeGET /api/countries/).CL('a,b', callback)carica le liste non caricate e memorizza ciascuna inDEF.cl.name(e nello stato a quel percorso);CLRELOAD(name, callback)le ricarica. - Traduzione:
LOCALIZE(text)carica un dizionario nel formato dei file di risorse di Total.js (key : translation, uno per riga,//per i commenti) eTRANSLATE(text)sostituisce ogni@(text)con la sua traduzione (lo stesso testo se non ce n'è). La chiave èTpiù l'HASH()del testo in base 36. UNAUTHORIZED(...names)restituiscefalsequandowindow.userha uno dei permessi (user.permissionsouser.roles, una lista o un oggetto) o èsa/su, etruealtrimenti (anche quando non c'è utente).Thelpers(lo stesso oggetto diTangular.helpers, eTaèTangular) contiene gli helper dei template: aggiungine uno conThelpers.name = function(value, ...arguments), dovethisè il modello, e usalo come{{ 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> Provalo nel tuo browser
Modifica l'esempio ed eseguilo. Gira in un frame isolato del tuo browser; nulla viene inviato al nostro server.
Anteprima