javascript - ko3中allBindings如何处理

标签 javascript knockout.js knockout-3.0

在 ko 2 中,我曾经在创建自定义绑定(bind)时向 allBindingsAccessor() 返回的对象添加额外的绑定(bind)。这是将复杂绑定(bind)包装到简单绑定(bind)中的便捷方式。

我注意到在 ko 3 中它不再工作了 - 现在有带有“get”和“has”方法的对象 allBindings。不幸的是,它没有“设置”方法,所以我不能再将 optionsText 和 optionsValue 添加到我的自定义选项中......

有什么想法可以让这项工作重新开始吗?

最佳答案

这在 Knockout 3.0 中使用 preprocessing 得到更好的处理。特征。以您的 jsFiddle 中的示例为例,以下是您如何在 3.0 中实现该功能:

ko.bindingHandlers.customList = {
    preprocess: function(value, name, addBinding) {
        addBinding('options', value);
        addBinding('optionsText', '"c"');
        addBinding('optionsValue', '"b"');
    }
};

jsFiddle:http://jsfiddle.net/mbest/avbnB/3/

关于javascript - ko3中allBindings如何处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20135344/

相关文章:

jquery - jquery、Knockoutjs、backbone.js 之间的关系/差异是什么?

jQuery datepicker,设置 knockout 可观察的日期格式

knockout.js - 您可以在自定义绑定(bind)中设置现有的 Knockout 绑定(bind)吗?

javascript - 使用 `prototype` 而不是 `this` 的原因

javascript - IE8 绑定(bind)的 knockout 问题

javascript - 如何使用 Nodejs 打印 lbl 文件?

javascript - 如何使 <td> 的内容除了左栏外不可见?

knockout.js - KnockoutJS : computed vs. 纯计算

javascript - Python flask : send variable data to textarea on the same html page w/JQuery

javascript - 如何设置第一个 Controller 数据另一个 Controller