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

Admin Templates Es ist mal wieder so weit: neues Projekt, neuer Admin-Bereich - kein Design. Ein Admin-Bereich ist in jeder größeren Webanwendung und ist definitv der...
PhpStorm FTW Sagen wir mal so, IDEs und ich sind eine endlose Geschichte. Ich weiß nicht wie oft ich inzwischen die IDE gewechselt habe, und inzwischen ist es auch...
500+ Feed-Abonnenten Irgendwie (und ich weiß nicht warum) dümpelte die Zahl der Abonnenten in den letzten Wochen immer um die 400-450 – Montag gab es aber scheinbar einen ...
250 Beiträge, und kein bischen leise :) Nun ist es so weit, kurz nach dem ersten Geburtstag ist dies hier der 250. Blog-Beitrag! Spaß hat es gemacht und auf ein Gewinnspiel habe ich diesmal ...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.