Daten-Helfer: QUERIFY, STRINGIFY, ENCRYPT, FN, CL, TRANSLATE, UNAUTHORIZED und Thelpers
QUERIFY([url], object)baut einen Query-String:null-Werte werden übersprungen, Arrays mit Kommas verbunden, Daten werden zu ISO-Texten und alles wird kodiert. Mit einer URL wird er an sie angehängt (?oder&), auch nach einer Methode wie in'POST /api/x'.STRINGIFY(object, [compress], [fields])istJSON.stringify()mit zwei Optionen:compress: truelässt leere Texte,nullundfalseweg und trimmt die Texte;fieldsist eine Liste der Namen, die bleiben, eine Funktion(key, value), die entscheidet, oder ein Objekt, in demname: falseein Feld weglässt.ENCRYPT(value, [key], [type])verwandelt einen Text oder ein Objekt in einen hexadezimalen Text, der mit einer Prüfung des Schlüssels endet, undDECRYPT(text, [key], [type])gibt den Wert zurück, oderundefined, wenn Schlüssel oder Typ nicht gleich sind. Es ist eine Verschleierung für den Browser, keine Sicherheit: Jeder kann es ohne den Schlüssel lesen.FN('n => n * 2')kompiliert einen Ausdruck zu einer Funktion und merkt sie sich; ohne=>ist der Text der Rumpf und das Argument heißtvalue.NOOP,EMPTYARRAYundEMPTYOBJECT(eingefroren: Sie können nicht aus Versehen geändert werden),MONTHSundDAYS(die Namen auf Englisch) undNOW(einDate, das jComponent aktuell hält).- Code-Listen:
CLINIT(name, function(next) {}, [expire], [init])registriert eine Liste, diefunctionlädt (sie ruftnext(value)auf; mit einem Text statt einer Funktion eine Adresse wieGET /api/countries/).CL('a,b', callback)lädt die nicht geladenen Listen und speichert jede inDEF.cl.name(und im Zustand unter diesem Pfad);CLRELOAD(name, callback)lädt sie erneut. - Übersetzung:
LOCALIZE(text)lädt ein Wörterbuch im Format der Ressourcendateien von Total.js (key : translation, eines pro Zeile,//für Kommentare) undTRANSLATE(text)ersetzt jedes@(text)durch seine Übersetzung (denselben Text, wenn es keine gibt). Der Schlüssel istTplus derHASH()des Textes zur Basis 36. UNAUTHORIZED(...names)gibtfalsezurück, wennwindow.usereine der Berechtigungen hat (user.permissionsoderuser.roles, eine Liste oder ein Objekt) odersa/suist, und sonsttrue(auch wenn es keinen Benutzer gibt).Thelpers(dasselbe Objekt wieTangular.helpers, undTaistTangular) enthält die Helfer der Templates: Füge einen mitThelpers.name = function(value, ...arguments)hinzu, wobeithisdas Modell ist, und nutze ihn 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> Probiere es in deinem Browser aus
Bearbeite das Beispiel und führe es aus. Es läuft in einem isolierten Frame in deinem Browser; nichts wird an unseren Server gesendet.
Vorschau