Bis vor kurzem habe ich Cairngorm als Framework für Flex verwendet. In diesem letzten Projekt bin ich jedoch zu Mate gewechselt. Es verwirrte mich immer noch ein wenig, da ich mich daran gewöhnt hatte, Daten im Modell zu lassen. Ich habe ein paar Komponenten, die auf dem gleichen Datensatz (Sammlung) beruhen. In der Komponente sendet der Erstellungsabschluss-Handler ein 'GiveMeMyDataEvent', das von einer der Ereignismaps abgefangen wird. Jetzt hätte ich in cairngorm in meiner Befehlsklasse einen kurzen Blick in das Modell geworfen, um zu entscheiden, ob ich die Daten vom Server holen muss oder nicht und dann entweder die Daten vom Modell zurückgegeben oder die db genannt habe. Wie würde ich das in Mate tun? Oder gibt es einen besseren Weg dazu? Ich versuche die Daten zu nutzen, die bereits vom Server empfangen wurden, aber ich bin mir nicht sicher, ob ich die Daten geladen habe oder nicht. Wenn eine Komponente, die dieselben Daten verwendet, instanziiert wurde, lautet die Antwort ja, andernfalls nein. Jede Hilfe/Hinweise sehr geschätzt.Mate-Framework - Überprüfen Sie die Daten vor dem Remote-Aufruf
Antwort
Die meisten Dinge in Mate sind indirekt. Sie haben Manager, die Ihre Daten verwalten, und Sie richten Injektoren (die Bindungen sind) zwischen den Managern und Ihren Ansichten ein. Die Injektoren stellen sicher, dass Ihre Ansichten mit Ihren Managern synchronisiert sind. Auf diese Weise haben die Ansichten immer die neuesten Daten. Ansichten werden nicht als direkte Folge des Absendens eines Ereignisses aktualisiert, sondern als indirekte Konsequenz.
Wenn Sie neue Daten laden möchten, senden Sie ein Ereignis, das von einer Ereigniszuordnung abgefangen wird, die wiederum einen Dienst aufruft, der Daten lädt und an die Ereigniszuordnung zurückgibt und die Ereigniszuordnung in das entsprechende Verzeichnis einfügt Manager.
Wenn der Manager aktualisiert wird, stellen die Injektoren sicher, dass die Ansichten aktualisiert werden.
Durch die Verwendung von Injektoren haben Sie garantiert immer die neuesten Daten in Ihren Ansichten. Wenn die Ansichten Daten enthalten, werden die Daten geladen - es sei denn, Sie müssen regelmäßig aktualisieren. In diesem Fall müssen Sie bestimmen, ob Daten vorhanden sind ist veraltet und löst ein Ereignis aus, das einen Serviceaufruf auslöst, der ein Update auslöst, das die Injektoren dazu veranlasst, die neuen Daten erneut in die Ansichten zu pushen, und sie abzurunden.
Kurz gesagt, die Antwort auf Ihre Frage ist, dass Sie sicherstellen müssen, dass Sie Injektoren richtig verwenden. Wenn dies eine zu hohe Antwort für Sie ist, weiß ich, dass Sie mehr Hilfe in der Mate forums bekommen können.
Ich stieß auf eine ähnliche Situation mit der App, an der ich gerade arbeite, und stellte fest, dass sie leicht in Mate implementiert werden kann, wenn Sie darüber nachdenken, zwei Ereignisse zu haben.
Das erste Ereignis ist so etwas wie DataEvent.REFRESH_MY_DATA
. Dieses Ereignis wird von einem DataManager gehandhabt, der entscheiden kann, ihn entweder zu ignorieren (da Daten bereits im Client vorhanden sind und als aktuell betrachtet werden), oder der Manager kann ein Ereignis wie DataEvent.FETCH_MY_DATA
versenden.
Das Ereignis FETCH_MY_DATA
löst einen Serviceaufruf in der Ereigniszuordnung aus, der einen Wert im Manager aktualisiert. Dieses Update ist Eigentum-Injektion in die Ansicht, glückliche Tage :)
- 1. Überprüfen Sie alle Formulardaten vor dem Senden
- 2. So überprüfen Sie die Absenderadresse vor dem Senden:
- 3. Überprüfen Sie die Signatur des OSX-Bundles vor dem Laden
- 4. Überprüfen Sie die E-Mail vor dem Senden funktioniert nicht
- 5. Überprüfen der Daten vor dem Importieren von MySQL
- 6. Die beste Möglichkeit, SQLDataReader vor dem Lesen zu überprüfen
- 7. Überprüfen der Dateigröße vor dem Hochladen
- 8. Überprüfen Sie Linq2Sql vor SubmitChanges()
- 9. Lassen Sie den Benutzer eine Datei vor dem Hochladen überprüfen
- 10. sql netezza vor dem Einfügen überprüfen
- 11. Überprüfen Sie vor dem Öffnen eines Dokuments in NSDocument-Architektur
- 12. Meteor.js - Überprüfen Sie den eingeloggten Status vor dem Render
- 13. Überprüfen Sie, ob Kinderelemente (Bilder) vor dem Ausführen geladen werden?
- 14. Gerät: Überprüfen Sie den aktuellen Benutzer vor dem Login
- 15. Sanitizing Daten vor dem Mungo
- 16. Andere Möglichkeiten, um die Dateigröße vor dem Hochladen zu überprüfen
- 17. Überprüfen, ob die Vorlage vor dem Rendern existiert
- 18. Messen Sie die Textlänge vor dem Rendern
- 19. Überprüfen Sie die Daten gegen informationsschema.columns
- 20. Wie Sie jede Spalte vor dem Einfügen in die Haupttabelle in SQL Server überprüfen
- 21. Daten vor dem 1. Januar 1970
- 22. Javascript - Holen Sie sich Paste Daten vor dem Einfügen Ereignis
- 23. Vuejs synchron vor dem Rendern Daten anfordern
- 24. Phalcon BeforeSpeichern Sie keine Daten vor dem Speichern?
- 25. Daten Modelform Objekt hinzufügen vor dem Speichern
- 26. warten Daten vor dem Start OnMapReady Rückruf
- 27. Überprüfen Sie, ob die Ressource bei NSURL VOR dem Herunterladen vorhanden ist.
- 28. Überprüfen Sie die Signatur von Linux shared-object vor dem Laden
- 29. So überprüfen Sie die Magento Connect 2.0-Erweiterungsquelle vor dem Herunterladen
- 30. Überprüfen Sie die Bedingungen in der Unterklasse vor dem Aufruf der Superklassenkonstruktormethode