Templating mit jQuery

Die von Microsoft (Jehova!) gesponserte Template-Engine für jQuery ist endlich da. Den meisten wird sich an dieser Stelle die Frage stellen, was man im Javascript wohl mit einem Template anfangen will, aber die Antwort ist ziemlich einfach: Wenn man mit jQuery einen Webservice direkt anspricht und dessen Antwort als HTML auf einer Seite ausgeben will, ist dies in der Vergangenheit in einer regelrechten String-Ausgabe-Hölle geendet. Mit der Template-Engine kann ich zum Beispiel wie mit Smarty in PHP ein Template definieren, dass dann benutzt wird, um das Ergebnis eines JSON-Calls auszugeben.

Ein entsprechendes Tutorial hat nettuts zur Verfügung gestellt. Das Template ist dabei recht intuitiv gehalten:

<script id="tweets" type="text/x-jquery-tmpl">
	<li>
 
		<h2> ${username} </h2>
		<p> ${tweet} </p>
		{{if geo}}
		<span> ${geo} </span>
		{{/if}}
	</li>
</script>

Den entsprechenden Aufruf des Ajax-Webservice sollte klar sein, in der success-function werden lediglich die Variablen für das Template zugewiesen. Was bei nettuts nicht ganz klar wird, ist das die Template-Engine das Template nimmt, und in eine bereits bestehende HTML-Struktur nachträglich einfügt. Das Template muss zwar in der Seite stehen, wird aber an der Stelle, wo es eingefügt ist, nicht angezeigt. Ferner ist es etwas unglücklich das dort das Template und das HTML fast die gleiche IDs verwendet worden sind.

Entsprechend erklärt sich die folgende Verbindung zwischen Template und Code:

$('#tweets').tmpl(twitter).appendTo('#twitter');

Das #tweets bezieht sich auf das Template, nicht auf die HTML-Struktur! Das Template wird dann auf das Array twitter angewendet, das von dem JSON-Calls zur Verfügung gestellt wird. Das each hat man sich an dieser Stelle gespart, das Template wird automatisch 1..n angewendet. Zu guter Letzt kommt mittels appendTo der HTML-Container, in, dass das Template eingefügt werden soll.

Alles in allem ein sehr einfacher und intuitiver Konstrukt, wenn man es erst einmal durchschaut hat:

1)      ID des Templates

2)      Name des Arrays das 1..n angewendet wird

3)      ID des HTML-Containers, in dass das Template eingefügt werden soll

Denkt dran, dass ihr auch den Fall abfangen müsst, dass der JSON-Calls keine Daten liefert.

Ähnliche Beiträge

Werbung für Webworking Falls mich einer verlinken möchte (solls ja geben), und das Ganze etwas stylisher über die Bühne bringen will, darf man jetzt meine neue Werbung verwe...
Einfaches Twitter-Click-Tracking mit bit.ly Tja, was soll ich sagen – bisher war es mir wirklich egal mit welchem URL-Shortener ich twittere. Meistens habe ich tinyurl genommen, weil es die Defa...
Ab Montag: Die BL★GST★RS von T3N Da ich weiss das unter meinen "Verfolgern" einiges an Blog-Betreibern rum schwirrt, habe ich eine nette Info für euch, T3N bringt ab Montag eine nette...
Intelligentes Kopieren von Links im Firefox Bloggen ist schön, bloggen ist nett – das Verlinken von Webseiten ist allerdings extremst schlecht. Der normale Weg ist der: Text in WordPress sch...

Schreibe einen Kommentar