Umschalten oder deaktivieren/wieder-aktivieren einer AngularJS Uhr

Ich muss in der Lage sein zu ignorieren, bestimmte Uhren, die während der Durchführung bestimmter Aufgaben. Hier ist das Szenario.


Habe ich ein paar Beobachter, die auf den Feldern, die verwendet werden, um zu berechnen, eine "Summen" - Feld.

Alle diese Felder können manuell geändert werden, das löst die Uhren, die Berechnung der "Summen" - Feld.

Die Felder können auch geladen werden aus einem gespeicherten Zustand, der löst auch die Uhren, die Berechnung der "Summen" - Feld.

Den "Summen" - Feld kann auch manuell überschrieben, gespeichert und geladen werden.

Das problem tritt auf, wenn ein manuell überschrieben "Summen" - Feld geladen wird mit den anderen Feldern. Die Uhren, die Neuberechnung der "Summen" ausgelöst werden, und überschreiben Sie die manuell außer Kraft gesetzt "Summen".

Ich muss in der Lage sein, Sie zu ignorieren Uhren während der Belastung Auftritt. Gibt es eine Möglichkeit, um dieses?

Ich weiß, ein watcher kann deaktiviert werden mit der de-Registrierung-Funktion übergeben wird, zurück, wenn Sie erstellen eine Uhr, aber wenn Sie neu erstellen, der Wächter ist immer noch weiß, dass die Daten, die er beobachtete, hat sich geändert.

Hinweis: Dies ist eine grob vereinfachte Beschreibung der business-Logik rund um das Thema. Nicht deaktivieren können eine Uhr würde erfordern, eine erhebliche Menge an Arbeit.

Hier ist ein Turnschuh, die zeigen das problem: jsfiddle.net/vGWZy/1/

  • Gibt es einen Grund, Sie mit Uhren im besonderen? Von den Klängen der es, $scope sollte in der Lage sein zu kümmern, all dies. Vielleicht erstellen ein Turnschuh helfen.
  • Dies ist ein sehr großes Stück von business-Logik, und es gibt viele Möglichkeiten, die Daten zu ändern. Nicht mit Uhren wäre ein Albtraum. Ich werde sehen, ob ich können zusammen eine einfache Geige zu zeigen das Problem. Hatte gehofft, jemand hätte eine definitive Antwort auf die Frage, ob dies zumindest possple.
  • Ich denke, ein einfaches Beispiel, wenn möglich wäre wirklich hilfreich hier.
  • Hinzugefügt ein Turnschuh, um das Problem veranschaulichen. jsfiddle.net/vGWZy/1/
  • Sorry das ich ursprünglich falsch gepostet fiddle-link. Die jetzt aktualisiert wurde.
  • Die Geige scheint alle gut funktionieren. Was sind die Schritte, mit der Geige zu kommen auf das Problem (sorry das ich noch nicht ganz das problem zu verstehen). Auch haben Sie sich überlegt etwas zu tun, wie dies in der Ansicht: SaveTotal: {{saved.value1 * saved.value2}}?
  • Geben Sie 3 in das erste Feld ein, 3 in das zweite Feld ein. Die Summen sollten 9 sein. Anschließend überschreiben Sie die Summen-box durch Eingabe von 100 in es. Das Ergebnis speichern, wieder laden, und Sie lösten die insgesamt 100 und 9 zurück, wie die Berechnung ausgelöst wird. Ich weiß, das klingt lächerlich, business-Logik, sondern auch business-Logik ist nicht immer Logik berücksichtigt...
  • So etwas wie dieser behauptet, mit dem gespeicherten Wert von 100. jsfiddle.net/869qz

InformationsquelleAutor Conan Morris | 2014-01-23
Schreibe einen Kommentar