Knockout: Принудительное обновление наблюдаемого

Созданный на 20 авг. 2012  ·  3Комментарии  ·  Источник: knockout/knockout

Всем привет,

Я столкнулся с проблемой в тот момент, когда мне нужно заставить наблюдаемый запускать обработчик обновлений независимо от того, отличается ли новое значение от _latestValue или нет. Это связано с тем, что мой наблюдаемый объект вызывается как обратный вызов, а не запускается непосредственно событием изменения в привязанном элементе (это настраиваемый элемент управления автозаполнением).

Идеальным решением был бы флаг "силы" на наблюдаемом:

myObservable ("новое значение", / * force = * / true)

Есть ли другой способ сделать это?

Ура, Эндрю.

Самый полезный комментарий

У наблюдаемых есть функция valueHasMutated которую вы можете вызвать для этой цели.

Вам просто нужно сделать:

myObservable.valueHasMutated()

Все 3 Комментарий

У наблюдаемых есть функция valueHasMutated которую вы можете вызвать для этой цели.

Вам просто нужно сделать:

myObservable.valueHasMutated()

Вы также можете сделать так, чтобы наблюдаемое всегда уведомляло об обновлении:

myObservable = ko.observable().extend({notify: 'always'});
myObservable("new value");  // will notify even if the value is already "new value"

Вероятно, неплохо было бы включить оба этих метода в документацию.

valueHasMutated работает как шарм! Спасибо, парни :-)

Была ли эта страница полезной?
0 / 5 - 0 рейтинги