在PHP中,我經常使用條件運算符將屬性添加到html元素(如果它適用於所討論的元素)。例如:Mako中使用標箱的條件運算符
<select name="blah">
<option value="1"<?= $blah == 1 ? ' selected="selected"' : '' ?>>
One
</option>
<option value="2"<?= $blah == 2 ? ' selected="selected"' : '' ?>>
Two
</option>
</select>
我開始使用Mako進行模板的Pylons項目。我怎樣才能達到類似的目的?現在,我看到兩種不理想的可能性。
解決方案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>
解決方案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>
在此特定情況下,該值等於所測試的變量(值= 「1」=>嗒嗒== 1) ,但我在其他情況下使用相同的模式,例如<?= isset($variable) ? ' value="$variable" : '' ?>
。
我正在尋找一種乾淨的方式來實現這個使用Mako。
只是讓你知道,'? :'是*三元運算符。它恰好是唯一的一個,所以它經常被誤認爲是*三元運算符。它的真名是「條件操作符」。 – Josh 2010-05-21 19:06:25
你說得對,我也糾正了問題的標題。 – 2010-05-21 20:02:43