1

我正在尝试创建一个自定义绑定,它将封装一系列 css 绑定。具体来说,而不是:

data-bind="css: { success: PickInventoryViewModel.ajaxSuccess, fail: PickInventoryViewModel.ajaxFailure, working: PickInventoryViewModel.ajaxWorking }"

我要这个:

data-bind="ajaxStatus: PickInventoryViewModel"

绑定将ajaxStatus是一个自定义绑定,它将启动适当的 css 绑定,而不是让这个实现细节散布在我的应用程序中。但是,cssbindingHandler 没有 init 函数,所以我不完全确定如何进行这项工作。

我想我可以订阅每个 observables 并ko.bindingHandlers['css'].update在观察到的值为true. 我考虑过的另一个可能的选择是将 css 绑定注入到 html 元素并重新绑定节点(我认为这就是这个 fiddleapplyBindingsToNode中示例的本质。

有没有人有更好的主意?

谢谢,文尼

4

1 回答 1

7

从您的自定义绑定初始化函数做

ko.applyBindingsToNode(element, { css: { /* stuff */ } });
于 2013-09-19T17:43:11.457 回答