如何处理ko3中的allBindings

时间:2013-11-22 01:32:36

标签: javascript knockout.js knockout-3.0

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

我注意到在ko 3中它不再起作用了 - 现在有了'get'和'has'方法的对象allBindings。不幸的是,它没有'set'方法,所以我不能再添加到我的自定义选项绑定optionsText和optionsValue ......

任何想法如何重新开始这项工作?

1 个答案:

答案 0 :(得分:3)

使用preprocessing功能在Knockout 3.0中更好地处理。以您的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/