LX: javascript und templates - PURE und Alternativen

Beitrag lesen

Hallo,

  • speichere Deine Templates mit Platzhaltern in <script type="text/html"></script>-Tags mit fester ID.

? das kapier ich nicht ganz. wie genau? wieso im script-tag? wird es da (noch) nicht ausgelesen? oder meinst du in hochkommas?

Es wird ausgelesen, aber nicht dargestellt. Script-Tag-Inhalte werden generell nicht angezeigt. Da Browser aber nicht über Schnittstellen für Scripte vom MIME-Format "text/html" verfügen (sondern nur für Dokumente in diesem Format), hast Du ein script-Node, auf das Du im DOM zugreifen kannst, etwa mit innerHTML.

Ansonsten müßtest Du den Code tatsächlich in Hochkommas setzen und das jeweils verwendete Hochkomma, sofern es im Code vorkommt, escapen.

<script type="text/html">
codeSnippet = '<h1>{abc}</h1';
</script>

  
Nein, das hast Du falsch verstanden, es müßte heißen:  
  
~~~html
  
<script type="text/html" id="headline">  
<h1>${headline}</h1>  
</script>  

Das könntest Du mit der in meinem vorigen Posting aufgeführten Funktion dann folgendermaßen ausfüllen:

document.getElementById('header').innerHTML = json2html('headline', { headline: 'Meine neue Headline' });

Ja, solange nicht iteriert werden muss, oder? Was ist full?

Bei .replace mit Regulären Ausdrücken kann man auch ein Callback angeben. Dieses wird mit den folgenden Parametern aufgerufen: als erstes wird der gesamte gematchte String von Anfang bis Ende übergeben und danach die jeweiligen Matches der in Klammern stehenden Begriffe. Das ist sehr praktisch, um bestimmte Muster zu filtern und dynamisch zu ersetzen.

Gruß, LX

--
RFC 1925, Satz 6a: Es ist immer möglich, einen weiteren Umweg einzufügen.
RFC 1925, Satz 11a: Siehe Regel 6a