Mixing- und Matching-Anweisungen
„Mixing“- und „Matching“-Anweisungen
Wie wir bereits im Beispiel-Template gesehen haben, kann mehr als eine TAL-Anweisung in einem Tag stehen. Allerdings sollte man sich dreier Einschränkungen bewußt sein.
- Es darf nur jeweils eine Anweisung eines Anweisungstyps in
einem einzelnen Tag verwendet werden. Da HTML nicht
die mehrfache Verwendung eines Attributes mit demselben Namen
erlaubt, ist beispielsweise die mehrfache Verwendung von
’tal:define’nicht erlaubt. - Die beiden Anweisungen
’tal:content’und’tal:replace’können nicht im selben Tag verwendet werden, da sich Ihre Funktionalitäten überschneiden bzw. miteinander in Konflikt stehen. - Die Reihenfolge, in der die TAL-Attribute in einem Tag
stehen, beeinflußt nicht die Ausführungsreihenfolge. Ungeachtet
der Anordnung werden die Attribute immer in folgender,
feststehender Reihenfolge ausgewertet:
define, condition, repeat, content/replace, attributes
Um diese Reihenfolge zu umgehen, können weitere Tags hinzugefügt und die TAL-Attribute entsprechend darauf verteilt werden. Falls es kein passendes Tag gibt, kann einfach oder
Soll beispielsweise eine Variable für jede Wiederholung eines Paragraphen definiert werden, so kann das ’tal:define’-Attribut nicht in das selbe Tag geschrieben werden wie die ’tal:repeat’-Anweisung, da die Definition vor der Wiederholung stattfinden würde. Stattdessen würde man eher etwas schreiben wie:
<div tal:repeat=“p phrases“>
<p tal:define=”n repeat/p/number”>
Phrase Nummer <span
tal:replace=”n”>1</span> is
“<span
tal:replace=”p”>Phrase</span>”.
</p>
</div>
oder
<p tal:repeat=”p phrases”>
<span tal:define=”n repeat/n/number”>
Phrase Nummer <span
tal:replace=”n”>1</span> is
“<span
tal:replace?”p”>Phrase</span>”.
</span>
</p>






