2016-05-25 6 views
1

Ich verwende Angular2:Wie können Benutzerdaten (Formular) beim Navigieren durch einen Formularassistenten am besten beibehalten werden?

I auf einer Form Wizard arbeite auf der Grundlage der folgenden:

1), die jeweils Wizardstep (Bildschirm) mit einer eigenen Komponente zugeordnet ist eine separate Unterformular Rendering() befestigt mit Bindungen ngFormControl .

2) Router-/Routing angewandt wird vorwärts durch das Formular auf jedes Formular einzeln

3) Benutzereingabedaten validiert zu bewegen [*]

4) Benutzereingabedaten werden beibehalten werden, das heißt sein an die API gesendet, nachdem der Benutzer dies bestätigt hat (im letzten Schritt des Assistenten).

[*] Ich könnte einige Gültigkeitsregeln haben, die in der Zukunft Kreuzformulare sind, die über mehrere Seiten, d. H. Formen, erstrecken. Für jetzt ist dies für meine Frage

out of Scope Ich möchte, dass der Benutzer vor und zurück durch die Wizard-Schritte navigieren wird seine Benutzer Eingabedaten beibehalten. Was ist der beste Weg, um in Angular2 zu gehen?

(Ich habe das Netz so weit gesucht, aber ich war nicht erfolgreich einen Vorschlag auf meinem Problem (spezifisch für angular2 bei der Suche).)

Antwort

1

Der beste Weg, einen gemeinsamen Datendienst zu verwenden ist, das ist für alle am Assistenten beteiligten Komponenten.

export class SharedDataService { 
    wizardData: any; 
} 

Dafür können Sie es in den Anbietern der übergeordneten Komponente festgelegt, dass alle von ihnen verwendet:

@Component({ 
    (...) 
    providers: [ SharedDataService ] // <---- 
} 

Sie auch sie geben könnte, wenn die Anwendung Bootstrapping, aber es wird von allen geteilt werden Anwendung:

bootstrap(AppComponent, [ SharedDataService ]); 

dieses doc Siehe für weitere Informationen:

+0

Danke Thierry, ok ich sehe. Der traditionelle Service (Singleton-Muster) Ansatz. Ich hatte gehofft, dass Angular2 einige neue Konstrukte auf den Tisch gebracht hätte. Ich lese über die Angular2 CanReuse und andere Lebenszyklus-Haken des eckigen Routers. Ich denke, meine Lösung sollte diese Hookpoints verwenden, um den Form-Zustand automatisch zu speichern und wiederherzustellen (mit dem SharedDataService-Ansatz) ...? – user2120188

+0

Hallo Thiery, ich möchte meine Formulare (pro Wizard Schritt: ein Formular) auf dem SharedDateService setzen, um den Status der Benutzereingabe pro Formular zu erfassen. Mit meinem Assistenten kann der Benutzer während der Eingabe des Benutzers hin- und her navigieren, dh er wechselt zwischen den Seiten und sieht die zuvor eingegebenen Benutzereingabedaten. Mein Statusdienst hat ein Änderungsabonnement für jedes Formular und wird daher während der Benutzereingabe mit jedem Formularstatus synchronisiert. Wenn ich zu einem Formular zurück navigiere, initialisiere ich das (neu erstellte) FormularModell mit den zuvor gespeicherten Werten von meinem Staatsdienst. Gibt es eine bessere Möglichkeit zum Speichern/Wiederherstellen von Formulardatenwerten? – user2120188

Verwandte Themen