Knockout: Erzwingen der Aktualisierung eines Observables

Erstellt am 20. Aug. 2012  ·  3Kommentare  ·  Quelle: knockout/knockout

Hallo zusammen,

Ich stehe im Moment vor einem Problem, bei dem ich in der Lage sein muss, ein Observable zum Auslösen seines Update-Handlers zu erzwingen, unabhängig davon, ob sich der neue Wert von _latestValue unterscheidet oder nicht. Dies liegt daran, dass mein Observable als Rückruf aufgerufen wird und nicht direkt durch ein Änderungsereignis für das gebundene Element ausgelöst wird (es ist ein benutzerdefiniertes Autovervollständigungs-Steuerelement).

Die ideale Lösung wäre ein "Force"-Flag auf dem Observablen:

myObservable("neuer Wert", /* force = */ true)

Gibt es eine andere Möglichkeit, dies zu tun?

Prost, Andreas.

Hilfreichster Kommentar

Observables haben eine valueHasMutated Funktion, die Sie zu diesem Zweck aufrufen können.

Sie müssen nur tun:

myObservable.valueHasMutated()

Alle 3 Kommentare

Observables haben eine valueHasMutated Funktion, die Sie zu diesem Zweck aufrufen können.

Sie müssen nur tun:

myObservable.valueHasMutated()

Sie können auch festlegen, dass das Observable immer benachrichtigt wird, wenn es aktualisiert wird:

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

Es ist wahrscheinlich eine gute Idee, beide Methoden in der Dokumentation zu haben.

valueHasMutated funktioniert wie ein Zauber! Danke Leute :-)

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen