Как связать 2 JQuery UI datepickers с нокаутом?

Я хочу связать startDatePicker с endDatePicker, есть ли способ связать их с Knockout.js?

Когда пользователь выбирает новую дату начала, endDatePicker будет обновлен, установив minDate в качестве новой даты начала и в отношении того, будет ли новая дата после его собственной даты обновлять текущую дату?

Заранее спасибо, я пытаюсь использовать пользовательские связующие, но я ничего не могу сделать.

Ответ 1

Этот код должен работать, при выборе минимальной даты он будет устанавливать minDate второго datepicker на его значение, наоборот, для max.

$('#min').datepicker({
    onSelect: function( selectedDate ) {
    $( "#max" ).datepicker( "option", "minDate", selectedDate );
    }
})

$('#max').datepicker({
    onSelect: function( selectedDate ) {
    $( "#min" ).datepicker( "option", "maxDate", selectedDate );
    }
})

Ответ 2

Вы можете использовать subscribe, чтобы подписаться на изменения наблюдаемого. Документация находится здесь: http://knockoutjs.com/documentation/observables.html#explicitly_subscribing_to_observables

var ViewModel = function() {
   var self = this;
   self.startDatePicker = ko.observable();
   self.endDatePicker = ko.observable();

   self.startDatePicker.subscribe(function(newValue) {
       // set the value on the other one
   });

   self.endDatePicker.subscribe(function(newValue) {
       // set the value on the other one
   });
}; 

Остальное зависит от вашей привязки...