さて、ユーザーが入力したデータのインライン検証を表示するために、KO スタイル バインディングを広範囲に使用しました。これが私のバインディングの1つです:
data-bind='style: {backgroundPosition: ! currentRegistry().title() || !$root.currentRegistry().clientLogin() ? "top" : "bottom"}
私が抱えている問題は、このようなバインディングを行いたいということです。ただし、2 番目のスタイル バインディングでは、if ステートメントが false と評価された場合、前のバインディングによって設定された背景位置に戻るようにしたいと考えています。単に「下」に戻るのではなく:
data-bind='style: {backgroundPosition: ! currentRegistry().title() || !$root.currentRegistry().clientLogin() ? "top" : "bottom"}, style: {backgroundPosition: currentRegistry().title() && $root.currentRegistry().clientLogin() && ! $root.hasRegImage() ? "20px" : "bottom"}'
つまり、2 番目のバインドでは、style: {backgroundPosition: if stuff ? "THIS"} そうでなければスタイルを変更しないでください。それが理にかなっていることを願っています。これを実現するためのヒントや指針をいただければ幸いです。ありがとう。
編集:
RodneyTrotter のソリューションは間違いなく、これと同じ機能を実現するためのよりエレガントな方法ですが、私が求めていたことを正確に実行する方法を同僚から学びました。各プロパティを条件付きにすることができることに気づきませんでした。
data-bind='style: {backgroundPosition: ! $root.currentRegistry().clientLogin() || ! $root.currentRegistry().title() ? "top" : (! $root.hasRegImage() ? "20px" : "bottom")}'>