我使用选择2和knockoutJs这个简单的绑定:选择二allowclear和knockout.js
ko.bindingHandlers.select2 = {
init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
var options = ko.toJS(valueAccessor()) || {};
setTimeout(function() {
$(element).select2(options);
}, 0);
}
};
标记:
<select class="select2" style="width:100%" data-bind="optionsCaption: '',options: $root.items,optionsText: 'description',optionsValue: 'id', value: $root.selectedItem,select2: { placeholder: 'Select an item...',allowClear: true }"></select>
它的作品!现在,我启用了Select2中的allowClear
选项,以清除下拉到一个占位符值,如Select an item...
。
如果我点击x
图标下拉菜单正确设置占位符,但敲除不会更新可观察的绑定值!
我想我已经改变custombinding将是这样的:
setTimeout(function() {
$(element).select2(options).on("select2-removed", function (e) {
ko.bindingHandlers.value.update(element, function() { return ''; });
});
...
,但它不会工作!
能否请您提供的jsfiddle与您的代码 –
与setTimeout的是什么?另外,我只能看到“init”的实现,你是否也可以在bindingHandler中显示你的“更新”实现? –