我正在尝试根据使用 Knockout-Kenendo.js 选择的选定值启用/禁用剑道日期选择器。
该 HTML:
<select data-bind="value: test">
<option value="1">1</option>
<option value="2">2</option>
</select>
<input data-bind="kendoDatePicker: {value: date, enabled: test() == 2}" />
JS:
ko.applyBindings({
date: ko.observable(),
test: ko.observable(),
});
小提琴:http://jsfiddle.net/xTjqH/2/
它最初会禁用日期选择器,但一旦选择"2",它就不会启用它。
根据跟踪
kendo 绑定中各个选项的依赖项的方式,需要使用计算来表示enabled
条件。 否则,将立即评估test() == 2
,并且永远不会再次评估。
使用您的样本,您可以绑定到类似计算dateEnabled
:
var viewModel = {
date: ko.observable(),
test: ko.observable(),
};
viewModel.dateEnabled = ko.computed(function() {
return viewModel.test() === "2";
});
样品:http://jsfiddle.net/rniemeyer/JaVKt/