一連の CSS バインディングをカプセル化するカスタム バインディングを作成しようとしています。具体的には、次の代わりに:
data-bind="css: { success: PickInventoryViewModel.ajaxSuccess, fail: PickInventoryViewModel.ajaxFailure, working: PickInventoryViewModel.ajaxWorking }"
これ欲しい:
data-bind="ajaxStatus: PickInventoryViewModel"
バインディングは、このajaxStatus
実装の詳細をアプリ全体に散りばめるのではなく、適切な css バインディングを開始するカスタム バインディングになります。ただし、css
bindingHandler には init 関数がないため、これを機能させる方法が完全にはわかりません。
各オブザーバブルをサブスクライブしてko.bindingHandlers['css'].update
、観測値が のときに呼び出すことができると思いますtrue
。私が検討した別の可能なオプションは、css バインディングを html 要素に挿入し、ノードを再バインドすることです (これが、この fiddle でapplyBindingsToNode
例示されている本質だと思います。
誰かがより良いアイデアを持っていますか?
ありがとう、ヴィニー