禁用停用选择选项标题
在淘汰赛2.3.0版本中,引入了optionsAfterRender
绑定,以便可以灵活地更改选项。
我想停用选项标题。 目前我正在做
<select data-bind="options: items, optionsCaption:'please select', optionsAfterRender: function(option, item) { ko.applyBindingsToNode(option, {disable: !item}, item); }"></select>
哪些工作,但我必须复制并粘贴optionsAfterRender
函数无处不在。 我一直在试图创建一个自定义绑定处理器来在一个地方做,但我有困难。 这是我迄今为止的bindingHandler:
ko.bindingHandlers.disableOptionsCaption = {
init: function (element) {
ko.applyBindingsToNode(element, {
optionsAfterRender: function (option, item) {
ko.applyBindingsToNode(option, {
disable: !item
}, item);
}
});
}
};
我也在这里创建了一个小提琴,它显示了工作版本和非工作版本。 任何帮助,将不胜感激!
您应该将所有绑定一起应用,而不是一步一步地执行,如下所示:
HTML
<select data-bind="disableOptionsCaption:{}"></select>
JS
ko.bindingHandlers.disableOptionsCaption = {
init: function (element,valueAccessor, allBindingsAccessor, viewModel) {
ko.applyBindingsToNode(element, {
options: viewModel.items,
optionsCaption: 'please select',
optionsAfterRender: function (option, item) {
ko.applyBindingsToNode(option, {
disable: !item
}, item);
}
});
}
};
链接地址: http://www.djcxy.com/p/14643.html
上一篇: Knockout disable select option caption
下一篇: jQuery hasAttr checking to see if there is an attribute on an element