У меня есть следующее:
self.periodicallySave = ko.computed(function () {
if (self.optionA() || self.optionB() || self.optionC()) {
self.saveOptions();
}
}).extend({ throttle: 1000 });
Я использую это значение для периодического сохранения текстовых полей по мере их обновления.Эти текстовые поля textareas
и выглядят так:
<textarea rows="2" data-bind="textInput: optionA"></textarea>
За исключением optionA
, который является select
.
<select data-bind="value: optionA">
<option>Foo</option>
<option>Bar</option>
</select>
По какой-то причине только OptionA
запускает мою вычисляемую наблюдаемую;изменение других не имеет никакого эффекта.Я неправильно понимаю, как работают вычисляемые наблюдаемые?Я ожидаю, что, если какая-либо из этих наблюдаемых изменится, функция сработает.
Обновление:
Если я использую +
вместо ||
работает как положено.Странно, что OR, кажется, останавливает наблюдаемую цепочку;тем более что optionA
- это select
, который может содержать только одно из двух значений.Удаление optionA
также дает ожидаемые результаты.