Wenn AngularJs einen $ ONVAL auslöst, gibt es eine Möglichkeit, sofort zu sagen, welche Werte in diesem Bereich geändert haben?

StackOverflow https://stackoverflow.com/questions/7354870

  •  28-10-2019
  •  | 
  •  

Frage

Ich möchte Änderungen am Server automatisch synchronisieren. Derzeit erkenne ich Änderungen in a scope.$onEval Handler von JSON, der den Anwendungszustand serialisiert und diesen mit einer zuvor serialisierten Kopie unter Verwendung von Diff-Match-Patch vergleicht.

Ich habe mich gefragt, ob AngularJS etwas eingebaut hat, um dies effizienter zu gestalten.

War es hilfreich?

Lösung

Sie könnten mehrere verwenden $ watch'es statt einer einzigen $onEval (Beachten Sie, dass $ watch eine Funktion als Argument anstelle eines String/Ausdrucks und in Version> = 0,10.0 mit den angesehenen Werten verglichen werden Angular.Object.equals). Abgesehen davon kenne ich keinen AngularJS -Mechanismus, der dafür nützlich wäre.

Andere Tipps

Ich arbeite an etwas Ähnlichem. Wie @psyho vorgeschlagen habe, dass ich es benutze $ watch die Änderungen fangen.

scope.$watch("dataObject",function (newValue, oldValue) {
    //calculate changes
    //send the changes to the server
});

Ich benutze dann die Logik von JQuery Diff Um zu berechnen, welche Änderungen vorgenommen wurden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top