javascript - Hur man får åtkomst till json som kommer från en GET-operation i Angular2
Jag har en metod som låter mig hämta data
onGet() {
this._httpService.getCurrent(this.model.user_email)
.subscribe(
data => this.getData = JSON.stringify(data),
error => alert(error),
() => console.log('Finished')
);
}
Jag får ett Json, som ger mig ett nummer, som {current: '1', some_other_data: 'data1'} eller {current: '2', some_other_data: 'data1'} eller {current: '3', some_other_data: 'data1'} osv
Jag får datan, men jag kan inte använda den. Jag behöver använda data för min router, något i stil med (det fungerar så klart inte, bara något slags pseudokod)
goAhead() {
if(current = 1){
this.router.navigate( ['page-1'] );
} else if (current = 2){
this.router.navigate( ['page-2'] );
}
}
I min goAhead-metod kan jag inte se det nya värdet av getData, det är odefinierat. Hur kan jag fixa detta?
Svar #1
Okej, anta att du använder goahead-funktionen i komponenten och kallar en tjänst som returnerar resultatet som mottaget, ändra din kod till följande
onGet() {
this._httpService.getCurrent(this.model.user_email)
.subscribe(
data => this.getData = data.json();
error => alert(error),
() => console.log('Finished')
);
}
och förutsatt att goahead-funktionen finns i samma komponent och inte är en array, då
goAhead() {
if(this.getData.current == 1){
this.router.navigate( ['page-1'] );
} else if (this.getData.current == 2){
this.router.navigate( ['page-2'] );
}
}
bör göra susen
