選択リストで 'options'バインディングを使用するときに、選択リストのオプション要素のスタイリング( 'style'または 'css'バインディングを使用して)を変更することはできますか?または、これは、選択リストで 'foreach'を使用し、それぞれのスタイルを変更することによってのみ行うことができますか?'options'バインディングを使用するとknockout.jsの色が<option>に変更されますか?
私はコードでこの持っている:
<select id="components-select" size="4" name="components-select"
data-bind=" options: combinedComponents,
optionsText: 'displayName',
optionsValue: 'id',
value: chosenComponent"></select>
を私はを追加した場合isDefault
falseを返すならば、リスト全体が赤に着色されています。
は、それをこのようにコーディングし、これを達成するための唯一の方法です:
<select id="components-select" size="4" name="components-select"
data-bind="foreach: combinedComponents">
<option data-bind="value: id, text: displayName, style: {color: isDefault() === true ? 'black' : 'red'}"></option>
</select>
または私が知っていないですKnockout.js魔法のいくつかの形式がありますか?
ありがとうございます!
私が知っているウィザードオプションはありません。デフォルトの 'options'バインディングハンドラは、必要なセマンティクスを得るために絶対に必要なものだけを出力します。また、各オプションの色を設定することは、設定可能な設定ではありませんでした。これらのオプションを追加するには、ハンドラを書き換えることができます。コントロールのレンダリング後にスタイルを設定することは可能でしょうか? –
いいえKOの 'options'バインディングでこれを直接サポートしていません。しかし、私はあなたの2番目の例である 'foreach 'はこの問題の最も簡単な解決策だと思います。 – nemesv
このようなことをこの1回以上行うつもりならば、あなた自身のバインディングハンドラを作成する方が良いでしょう。 'optionsWithColor' –