Es gibt ein paar Ansätze sind je nachdem, ob Sie den Router verwenden oder nicht.
- Sie können Werte von queryParams wie dies in Ihrem Tag übergeben:
<a [routerLink]="['pathToNewFormPlaceholder']" [queryParams]="{'firstName': 'John', 'lastName': 'Doe'}">Submit</a>
wo 'John' und 'Doe' sind nur Platzhalter für Ihre [(ngModel)] Werte aus der Form und dann, um sie in der neuen Komponente abonnieren:
export class NewFormComponent implements OnDestroy{
params: {};
subscription: Subscription;
constructor(private router: Router) {
this.subscription = router.routerState.queryParams.subscribe(
(queryParams: any) => this.params = queryParams);
}
ngOnDestroy() {
this.subscription.unsubscribe();
}
}
as ervice FormService
mit Variablen speichern Ihre Daten und Methoden:
previousForm: any;
saveValues(data) {
this.previousForm = data;
}
getFormValues() {
return this.previousForm;
}
und fügen Sie sie der Anbieter in der Bootstrap-Datei wie folgt:
bootstrap(AppComponent, [
FormService
]);
dann in beiden Formularkomponenten geben Sie Ihre FormService in der Konstruktor: constructor(private formService: FormService);
Nach dem Sie this.formService.saveValues({firstName, lastName})
aufrufen sollten, wenn Sie die erste Form.
Um die Werte in der neuen Formularkomponente abzurufen, rufen Sie Ihren Dienst auf und weisen Sie den gewünschten Feldern Werte zu.
ngOnInit() {
let data = this.formService.getFormValues()
this.firstName = data.firstName;
this.lastName = data.lastName;
}
Verwenden Sie Vorlagenformulare oder Datenformulare (FormBuilder)? – MatWaligora
Da bin ich mir nicht sicher, da ich mit Angular2 ziemlich neu bin. aber ich benutze Eingabe-Tags und binden sie einfach an Modelle mit [(ngModel)] -Direktiven. – EMC