Как связать 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
});
};
Остальное зависит от вашей привязки...