У меня есть два поля в форме; «Дни» и «Дата».
<div id="myForm">
<label for="days">Days</label>
<input id="days" type="text" data-bind="value:myViewModel.days" />
<label for="date">Date</label>
<input id="date" type="text" data-bind="value:myViewModel.date" />
</div>
Каждое поле привязано к наблюдаемой КО. Я хотел бы, чтобы пользователь мог редактировать любое из этих полей, а другое поле автоматически обновляться.
Моя ViewModel выглядит следующим образом (упрощено, чтобы сохранить краткость):
myViewModel = new function () {
var self = this;
self.days = ko.observable(10);
self.date = ko.observable('2020-02-06');
};
myViewModel.days.subscribe(function (newValue) {
var newDate = JSON call to get new date using newValue
myViewModel.date(newDate);
});
myViewModel.date.subscribe(function (newValue) {
var newDays = JSON call to get days using newValue
myViewModel.days(newDays);
});
У меня проблема в том, что оба значения являются наблюдаемыми, и каждое обновляет другое, как только одно из значений автоматически обновляется, оно запускает еще l oop обновлений. Есть ли альтернативный подход, чтобы получить желаемое поведение?
Большое спасибо заранее.