2016-05-12 9 views
1

Was ist die empfohlene Methode zum Löschen von Presenter-Daten? Ich möchte meine Benutzeroberfläche bei der Anmeldung löschen.GWTP - Clear Presenter-Daten

Als Beispiel für das aktuelle Problem habe ich einen NestedPresenter, der zum Sammeln von Formulardaten verwendet wird. Jemand kann sich abmelden, ein anderer Benutzer kann sich erneut anmelden, während die Browsersitzung noch aktiv ist. Wenn das Formular angezeigt wird, werden die Daten des vorherigen Benutzers weiterhin angezeigt.

Irgendwelche Empfehlungen?

Antwort

1

Es hängt stark von der Navigation ab, die Sie in Ihrer Anwendung verwenden. Wenn Sie den PlaceManager verwenden, um zwischen fast zustandslosen Bildschirmen zu navigieren, ist das Überschreiben der Methode onReset der Ort, den ich Ihnen am meisten empfehle, da jedes Mal, wenn die Navigation einen Benutzer zum Präsentator bringt, Ihr Löschcode ausgeführt wird.

Referring to documentation

onreset()

Dies geschieht am Ende von jedem Navigations Anforderung des Benutzers. Zum Beispiel Wenn man Code ausführen muss, wenn Benutzer zu einem Presenter navigiert, der bereits gebunden ist und bereits zu einem Slot hinzugefügt wurde, muss die Methode überschrieben werden. Seien Sie vorsichtig, dies wird oft genannt, also sollte nichts zu schwer in dieser Methode ausgeführt werden.

Löschen Sie Ihre Ansicht, und rufen Sie dann das neue Modell ab. Wenn onreset für Sie zu häufig ist - Stick mit onReveal() dann

onReveal()

onReveal() wird aufgerufen, wenn der Moderator enthüllt wird. In GWTP-Vokabular, dh wenn ein Presenter zu einem Slot hinzugefügt wird Daher bedeutet dies nicht unbedingt, dass das Objekt im DOM sichtbar sein wird. Sehen Sie diese Ausgabe, um die Disambiguition zu verstehen. Diese sollte überschrieben werden, wenn Sie etwas auf dem Presenter aktualisieren möchten, wenn es zu einem Slot hinzugefügt wird.

und wenn onReveal irgendwie nicht in Ihrem Fall arbeiten (Sie halten die in den Schlitz eingeführt Moderatoren die ganze Zeit + Navigationsanforderungen sind nicht wichtig) - nur klare Informationen jedes Mal, wenn Ihr Moderator versteckt ist, über zwingende onHide()

+0

Danke für die Antwort. Es klingt für mich so, als würden Sie eine benutzerdefinierte Datenlöschung vorschlagen, während Sie sich zu gegebener Zeit in den gwtp-Lebenszyklus einklinken. Meine Sorge bei diesem Ansatz ist, dass es Kopfschmerzen bei der Wartung gibt und anfällig für Fehler ist. Jedes Mal, wenn ich neue Funktionen einführe, z. B. neue Daten oder bedingt angezeigte Elemente, habe ich die zusätzliche Aufgabe, meine benutzerdefinierte Löschmethode zu aktualisieren. –

+0

Nun, Sie haben eine solche Methode in Ihre Ansicht eingefügt und sie irgendwo im Lebenszyklus des Präsentators aufgerufen. Es gibt keine Datenbindung in GWTP afaik, so dass nur Sie wissen, was Sie in der Ansicht auffüllen, wenn Sie das Modell festlegen. Was wir normalerweise in diesen Fällen tun, ist: 1. Erstellen Sie eine Methode setModel (SomeJavaPojo-Modell) {} in View und ViewImpl, dann erstellen Sie eine andere Methode clear(), die setModel (new SomeJavaPojo()) aufrufen kann, um Standardwerte zu füllen. Bedenken Sie auch, dass onReset in kleinere PresenterWidgets unterteilt wird. Wenn Ihr Code also gut granuliert ist, wird er nicht so komplex sein –