3

我正在尝试根据使用 Knockout-Kendo.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”,它就不会启用它。

4

1 回答 1

3

根据跟踪 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/

于 2013-10-24T15:51:55.757 回答