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

剣道バインディングの個々のオプションの依存関係を追跡する方法に基づいて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 に答える