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.

War es hilfreich?

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
scroll top