Guten Abend,
ich beschäftige mich gerade mit Angular (Version 6) und hänge nun seit ein paar Stunden an folgendem Problem.
Ein User kann mehrere Anschriften haben und nun möchte ich dem User eine Anschrift erstellen.
User Model wäre sowas:
export class User {
Id: string;
....
Anschriften: Anschrift[] = new Array();
}
Nun hole ich mir in der Component den User per in der ngOnInit Methode.
currentUser: User;
.....
this._userService.getUserById(this._id).subscribe(user => this.currentUser = user);
Die Methode im Service dazu sieht so aus:
getUserById(id: string): Observable<User> {
return this.http.get<User>(this._baseUrl + '/' + id)
.pipe(
map(value => this._user = value)
);
}
Nun rufe ich beim speichern der Anschrift meine create Methode auf und erstelle mir meine Anschrift:
this.anschrift = new Anschrift();
this.anschrift = {
.....
};
Dann wollte ich die Anschrift dem currentUser zuweisen.
this.user.pipe(
map(user => {
user.Anschriften.concat(this.anschrift);
})
)
Ob ich nun concat oder push benutze ist egal. Sowas als auch ist beides undefined. Es ist mir auch klar, dass ich hier synchronen Code mit Asynchronen kombiniere und das wohl auch die Ursache dafür ist. Allerdings finde ich einfach keine Lösung mit der ich in einem observerable ein Item pushen kann und anschließend dann das aktualisierte Model an meine API schicke.
Über einen Lösungsvorschlag wäre ich wirklich SEHR dankbar.
ich beschäftige mich gerade mit Angular (Version 6) und hänge nun seit ein paar Stunden an folgendem Problem.
Ein User kann mehrere Anschriften haben und nun möchte ich dem User eine Anschrift erstellen.
User Model wäre sowas:
export class User {
Id: string;
....
Anschriften: Anschrift[] = new Array();
}
Nun hole ich mir in der Component den User per in der ngOnInit Methode.
currentUser: User;
.....
this._userService.getUserById(this._id).subscribe(user => this.currentUser = user);
Die Methode im Service dazu sieht so aus:
getUserById(id: string): Observable<User> {
return this.http.get<User>(this._baseUrl + '/' + id)
.pipe(
map(value => this._user = value)
);
}
Nun rufe ich beim speichern der Anschrift meine create Methode auf und erstelle mir meine Anschrift:
this.anschrift = new Anschrift();
this.anschrift = {
.....
};
Dann wollte ich die Anschrift dem currentUser zuweisen.
this.user.pipe(
map(user => {
user.Anschriften.concat(this.anschrift);
})
)
Ob ich nun concat oder push benutze ist egal. Sowas als auch ist beides undefined. Es ist mir auch klar, dass ich hier synchronen Code mit Asynchronen kombiniere und das wohl auch die Ursache dafür ist. Allerdings finde ich einfach keine Lösung mit der ich in einem observerable ein Item pushen kann und anschließend dann das aktualisierte Model an meine API schicke.
Über einen Lösungsvorschlag wäre ich wirklich SEHR dankbar.