javascript - 具有更新功能的 knockout 自定义选择 Binder

标签 javascript jquery knockout.js custom-binding

我正在尝试开发自定义选择 Binder ,但我无法理解如何开发更新功能。目前this这就是我所做的。我想要自定义 Binder 来处理这种类型的数据

[{
    message: "Hello",
    Value: 1
}, {
    message: "Hi",
    Value: 2
}, {
    message: "Bye",
    Value: 3
}, ]

最佳答案

据我了解,问题是:您正在使用Bootstrap Fullscreen Select ,并且您可以初始化它,但是当您选择新值时,不会更新任何可观察值。基本上,我们需要知道何时选择新值。

由于该小部件的工作方式是弹出一个选项屏幕并允许您选择一个选项,然后关闭该弹出窗口,因此该小部件提供了执行 onClose 的功能 回调,这就是我们所需要的。

我在选择中使用value绑定(bind)的标准约定。当小部件关闭时,如果新值与绑定(bind)值不同,我会将绑定(bind)值更新为小部件中选择的新值。

ko.bindingHandlers.menu = {
    init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
        var valueObservable = allBindingsAccessor().value;
        $(element).mobileSelect({
            onClose: function () {
                var newValue = $(this).val();
                if (newValue !== valueObservable()) {
                    valueObservable(newValue);
                }
            }
        });
    }
};

作为 fiddle :http://jsfiddle.net/4zsu9pv2/4/

关于javascript - 具有更新功能的 knockout 自定义选择 Binder ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31413527/

相关文章:

javascript - knockout 更改模板中的模型

javascript - 在 JavaScript 中获取跨度的 id。

css - JQuery Mobile 文本区域 : how does it use 'rows' attribute?

javascript - PhantomJS Ghostdriver 停止

jquery - Datatable 中的单选按钮无法在 Safari/Firefox 中呈现

javascript - RESTful API 可以工作,但无法正确渲染 UI(MDC + Sheetsu)

javascript - 获取字符串的一部分

javascript - 如何在 knockout.js 中实现可计算的可观察量

javascript - 更改 SVG <text> 而不更改其子 <tspan> 的正确方法

javascript - 如何逐行获取二维网格中黑色单元格的数量?