Hallo,
ich habe ein Template mit Javascript. Wie platziere ich am besten Parameter in dem JavaScriptabschnitt?
<script type="text/javascript">
var v = {
prop: {tplVariable}
}
</script>
Im Beispiel soll der Platzhalter {tplVariable} von fluid gegen ['hase','igel'] ausgetauscht werden.
Danke
Ja sollte so gehen.
und folgendes müsste in deiner PHP Klasse stehen
$string = "['hase','igel']";
$this->view->assign('tplVariable', $string);
Das Funktioniert, aber meine IDE unterstützt mich nicht und meldet einen Fehler. Gibt es da eine "Best Practise"
Mit CDATA Comments kannst du das IDE Highlighting weiterhin nutzen.
Dafür einfach alle Teile mit geschweiften Klammern, die nicht vom Fluid stammen mit einem
/*<![CDATA[*/
/*]]>*/
wrappen.
Hier ein Beispiel:
<script type="text/javascript">
/*<![CDATA[*/
jQuery(document).ready(function() {
jQuery("body").on("click", ".open-gallery", function(ev) {
/*]]>*/
ev.preventDefault();
jQuery('#page{newsCount.cycle}').find('.gallery').eq(0).trigger('click');
/*<![CDATA[*/
});
});
/*]]>*/
</script>
Nachteil daran, das die Kommentare (leer natürlich) mit gerendert werden. Was aber nicht wirklich schlimm ist ( /**/ )
Best Practise ist sich hier generell zu fragen muss das JS Inline stehen. Die Antwort sollte nur Ja lauten wenn Teile/Informationen der aktuellen Instanz benötigt werden, wie in meinem Beispiel die Id im Code benötigt wird.
P.S. Problematisch sind nur geschweifte Klammern für Fluid
Thomas