Bedingte Operator in Mako mit Pylonen
-
04-10-2019 - |
Frage
In PHP, verwende ich oft den bedingten Operator ein Attribut zu einem HTML-Element hinzufügen, wenn es an das betreffende Element gilt. Zum Beispiel:
<select name="blah">
<option value="1"<?= $blah == 1 ? ' selected="selected"' : '' ?>>
One
</option>
<option value="2"<?= $blah == 2 ? ' selected="selected"' : '' ?>>
Two
</option>
</select>
Ich beginne ein Projekt mit Pylonen Mako mit der Templat. Wie kann ich etwas Ähnliches erreichen? Gerade jetzt, ich sehe zwei Möglichkeiten, die nicht ideal sind.
Lösung 1:
<select name="blah">
% if blah == 1:
<option value="1" selected="selected">One</option>
% else:
<option value="1">One</option>
% endif
% if blah == 2:
<option value="2" selected="selected">Two</option>
% else:
<option value="2">Two</option>
% endif
</select>
Lösung 2:
<select name="blah">
<option value="1"
% if blah == 1:
selected="selected"
% endif
>One</option>
<option value="2"
% if blah == 2:
selected="selected"
% endif
>Two</option>
</select>
In diesem speziellen Fall ist der Wert gleich die Variablen getestet (Wert = "1" => blah == 1), aber ich benutze das gleiche Muster in anderen Situationen, wie <?= isset($variable) ? ' value="$variable" : '' ?>
.
Ich bin für eine saubere Art und Weise dies mit Mako zu erreichen.
Lösung
Wenn es Python läuft, der "ternäre Operator" ist
# condition ? trueValue : falseValue
trueValue if condition else falseValue
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow