Ich versuche, die Werte für den Breiten- und Längengrad eines Objekts zu ändern, nachdem ich das Formular abgeschickt habe, weil ich eine Geocode-Funktion an die Adresse übergeben muss.Ändern Sie den Variablenwert eines Objekts, nachdem Sie das Formular in Angular2 gesendet haben.
ich diese Funktion bin mit dem lat und lng ändern:
setLanLon(address : string){
this.getLatLon(address).subscribe(
data => {
this.foo.lat= data.lat();
this.foo.lng= data.lng();
},
error => {
console.log(error);
});
}
und die Funktion, die auf dem Formular und genannt wird, worin ich rufe die Funktion, die die Werte ändert, ist dies ein :
edit() {
this.setLanLon(this.foo.address);
this.service.update(this.foo)
.subscribe(
data => {
this.router.navigate(['/home']);
},
error => {
console.log(error);
});
}
Aber die lat und lng Werte, die ich in den Dienst erhalten, sind die ursprünglichen Werte nicht die, die ich mit meiner Funktion ändern. Was mache ich hier falsch? Danke im Voraus.
Was ist los mit 'data.lat()' und 'data.lng()', sollte es nicht nur sein, 'data.lat' und' data.lng' oder wie sieht deine Antwort aus? Und Ihre 'update'-Methode wird ausgelöst, bevor' foo' manipuliert wurde. Versuchen Sie, die Methode nach dem Einstellen der neuen Werte auszuführen: '.... this.foo.lng = data.lng; this.service.update (this.foo) .... ' – Alex