我正在尝试开发自定义选择 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/