#angular #angular6
#angular #angular6
Вопрос:
Я пытаюсь сохранить строковое значение, возвращаемое из HTTP POST, но оно продолжает оставаться неопределенным.
Мой сервис:
getString(id: string): Observable<any>{
const params = {
Id: id
}
return this.http.post(url , null, {params:params});
}
И POST вернет мне некоторую случайную строку
dsfsdfsdfsfsadfsdfsdafwrewrtwerctwertwertwertwetrxwet
И в моем компоненте:
string1: any;
saveString() {
this.transactionService.getString(this.id).subscribe(data =>
{
this.string1= data;
})
}
Но мои string1
и data
return не определены, служба HTTP успешно возвращает строковое значение. Как мне сохранить значение?
Комментарии:
1. getString(id: string): Observable<any>{ const params = { Id: id } возвращает this.http.post(url, null, {параметры:params}).map(соответственно => соответственно.json()); } string1: any; saveString() { this.TransactionService.getString(this.id ).subscribe(данные => { this.string1= data; }) }
Ответ №1:
Попробуйте установить эти данные в subscribe на любой
string1: any;
saveString() {
this.transactionService.getString(this.id).subscribe((data:any) =>
{
this.string1= data;
})
}
Ответ №2:
Я думаю, вы ошибаетесь в своем коде. POST необходимо передавать данные во втором параметре, см. Документ в https://angular.io/guide/http,
/** POST: add a new hero to the database */
addHero (hero: Hero): Observable<Hero> {
return this.http.post<Hero>(this.heroesUrl, hero, httpOptions)
.pipe(
catchError(this.handleError('addHero', hero))
);
}