我正在尝试创建一个自定义绑定,它将封装一系列css绑定。具体而言,而不是:
data-bind="css: { success: PickInventoryViewModel.ajaxSuccess, fail: PickInventoryViewModel.ajaxFailure, working: PickInventoryViewModel.ajaxWorking }"
我想要这个:
data-bind="ajaxStatus: PickInventoryViewModel"
ajaxStatus
绑定将是一个自定义绑定,它将启动相应的css绑定,而不是在我的应用程序中散布此实现细节。但是,css
bindingHandler没有init函数,所以我不完全确定如何使这个工作。
我想我可以订阅每个observable并在观察值为ko.bindingHandlers['css'].update
时调用true
。我考虑的另一个可能的选择是将css绑定注入到html元素并重新绑定节点(我认为这是applyBindingsToNode
的本质,如in this fiddle所示。
有没有人有更好的主意?
谢谢, Vinney
答案 0 :(得分:7)
ko.applyBindingsToNode(element, { css: { /* stuff */ } });