この単純な CSS ノックアウト バインディングでは
<tag data-bind="css: { 'class_1': condition1, 'class_2': condition2 }" />
C# 変数に移植class_1
したいと思います。class_2
これは私の最初の試みです:
<tag data-bind="css: { '@class1': condition1, '@class2': condition2 }" />
他の試みでは、バインディング ステートメントを含む別の変数を宣言する必要がありました。
string bind = string.Format("'{0}': condition1, '{1}': condition2", class1, class2)
<tag data-bind = "css: { @bind }" />
そして最後に:
string bind = string.Format("css: {{ '{0}': condition1, '{1}': condition2 }}", class1, class2)
<tag data-bind = "@bind" />
これらのいずれもページのレンダリングをブロックしませんでしたが、最初の 2 つの結果として、Visual Studio で構文エラーが示されました。私はこのバインドをしたい:
- 別の変数をインスタンス化する必要なし
- Visual Studio 2012 で構文エラーが発生することはありません (およびコードの崩壊を台無しにします)。
出来ますか?
最後の例は、構文エラーを出さない唯一の例であり、特に大きなステートメントの場合、コードの読みやすさを犠牲にしています。私の最初の試みのように見える代替手段はありますか? Knockout MVC は少し侵略的すぎるようです。似たようなものがありますが、この問題だけを解決できるものはありますか?