こんにちは、みんな、
新しい値が_latestValueと異なるかどうかに関係なく、オブザーバブルに更新ハンドラーを強制的に起動させる必要があるという問題に直面しています。 これは、私のobservableが、バインドされた要素の変更イベントによって直接トリガーされるのではなく、コールバックとして呼び出されているためです(これはカスタムオートコンプリートコントロールです)。
理想的な解決策は、オブザーバブルの「フォース」フラグです。
myObservable( "new value"、/ * 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()