Ist es beim Knockout möglich, den aktuellen Wert eines Observable innerhalb eines Abonnements für dieses Observable abzurufen, bevor es den neuen Wert erhält?
Beispiel:
this.myObservable = ko.observable();
this.myObservable.subscribe(function(newValue){
//I'd like to get the previous value of 'myObservable' here before it's set to newValue
});
knockout.js
knockout-2.0
observable
KodeKreachor
quelle
quelle
this
steht hier?Verwenden Sie das oben genannte wie folgt:
quelle
dispose()
Funktion gist.github.com/30ff1f5c1adf215179b0046515f86e45 handeltKleine Änderung an Beagle90 Antwort. Geben Sie das Abonnement immer selbst zurück, um beispielsweise auf dispose () zugreifen zu können.
quelle
.dispose
den Rückgabewert daraus aufrufen, wird nur das zweite Abonnement entsorgt, nicht das'beforeChange'
AbonnementDie Pull-Anforderung zum Hinzufügen dieser Funktion enthält einen anderen Code, der besser ist als die Verwendung des
beforeChange
Ereignisses.Alle Ehre für die Lösung an Michael Best
Um Michael zu zitieren:
quelle
Ich habe festgestellt, dass ich peek () von einem beschreibbaren berechneten Observable aus aufrufen kann, um den Vorher-Wert zu erhalten.
So etwas (siehe http://jsfiddle.net/4MUWp ):
quelle
peek()
Sie den neuen Wert erhalten.subscribe
Rückruf abzurufen , was mit peek () nicht möglich ist. Ihr Beispiel beweist nichts und könnte einen Neuling verwirren. Grundsätzlich verpacken Sie hier eine private Variable und zeigen ihren Wert an, bevor Sie sie festlegen - natürlich hat sich nichts daran geändert.