【问题标题】:How do I wrap a css knockout binding with custom binding?如何使用自定义绑定包装 css 淘汰赛绑定?
【发布时间】:2013-09-19 17:20:55
【问题描述】:

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

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

我想要这个:

data-bind="ajaxStatus: PickInventoryViewModel"

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

我想我可以订阅每个 observables 并在观察值为 true 时调用 ko.bindingHandlers['css'].update。我考虑过的另一个可能的选择是将 css 绑定注入到 html 元素并重新绑定节点(我认为这是 applyBindingsToNode 的精髓,例如 in this fiddle

有人有更好的主意吗?

谢谢, 文尼

【问题讨论】:

    标签: knockout.js bindinghandlers


    【解决方案1】:

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

    ko.applyBindingsToNode(element, { css: { /* stuff */ } });
    

    【讨论】:

    • 完美!当你的 problem 的答案可以用 2 行响应来表达时,一定会喜欢 ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多