ノックアウト.jsを使用してドロップダウンリストをコーディングしています:
views() は、REST を使用して JSON 経由でインスタンス化されたオブジェクトの配列です。displayName は、これらのオブジェクトの String 属性であり、監視できません。displayName 属性を比較して、特定の単語と一致する場合は、そのオプションに何らかのスタイルを適用したいと考えています。
<select id="views" data-bind="
options: views(),
optionsText: 'displayName',
optionsValues: 'id',
value: selectedView,
style: { color: ( displayName == 'some arbitrary text') ? 'red' : 'black' }
"></select>
スタイルバインディングを追加しないと、ドロップダウンは意図したとおりに機能します。簡単な比較 (つまり 1 == 1) を行うことができ、それは機能します (ただし、すべてのオプションが赤くなります)。私がやりたいことは、「displayName」属性を任意のテキストと比較することです。現在はテキストを含む単なる文字列ですが、後でこの文字列は ViewModel から呼び出されます。
これにより、ビュー モデルで必要な場合に、特定のオプションをさまざまなスタイルで設定できるようになります。何か案は?