Всем привет,
Я столкнулся с проблемой в тот момент, когда мне нужно заставить наблюдаемый запускать обработчик обновлений независимо от того, отличается ли новое значение от _latestValue или нет. Это связано с тем, что мой наблюдаемый объект вызывается как обратный вызов, а не запускается непосредственно событием изменения в привязанном элементе (это настраиваемый элемент управления автозаполнением).
Идеальным решением был бы флаг "силы" на наблюдаемом:
myObservable ("новое значение", / * force = * / true)
Есть ли другой способ сделать это?
Ура, Эндрю.
У наблюдаемых есть функция valueHasMutated
которую вы можете вызвать для этой цели.
Вам просто нужно сделать:
myObservable.valueHasMutated()
Вы также можете сделать так, чтобы наблюдаемое всегда уведомляло об обновлении:
myObservable = ko.observable().extend({notify: 'always'});
myObservable("new value"); // will notify even if the value is already "new value"
Вероятно, неплохо было бы включить оба этих метода в документацию.
valueHasMutated работает как шарм! Спасибо, парни :-)
Самый полезный комментарий
У наблюдаемых есть функция
valueHasMutated
которую вы можете вызвать для этой цели.Вам просто нужно сделать:
myObservable.valueHasMutated()