#node.js #angular #observable #httpclient #subscribe
#node.js #angular #наблюдаемый #httpclient #Подписка
Вопрос:
Я использую службу POST в .net, которая возвращает следующую структуру, служба возвращает данные правильно
введите описание изображения здесь
public sendExcelInBase64ToBackEnd(data: any) {
this.customOptions = {
headers: this.customHttp.buildHeader(),
};
this.customHttp.Post<SerialResultDTO>('/serialsExcel', data, this.customOptions).subscribe(val => { // <- val data returns ok
this.serialResult = val;
let x = this.serialResult.Success;
console.log(x);
console.log(val.Success); // <- prints undefined
})
return null;
}
Когда я пытаюсь напечатать в консоли ‘val.Успех «он печатает неопределенный!!Почему это происходит??
Я хочу присвоить все атрибуты пользовательскому классу в angular, но в chrome debug он показывает данные объекта, но во время привязки к моему классу модели он становится неопределенным!!
Кто-нибудь может мне помочь, пожалуйста!! Я ценю это!!
Комментарии:
1. Привет, Крис, у тебя
val
естьSuccess
собственность? Он попытается сериализовать егоSerialResultDTO
таким образом, чтобы уSuccess
него было свойство.2. Привет, Джон, да, SerialResultDTO имеет свойство Success , но ошибка заключалась в написании, служба http возвращает в нижнем регистре, как говорит moxximanagarm.
Ответ №1:
Ваше изображение показывает success
нижний регистр , но вы пытаетесь зарегистрировать Success
заголовок . Изменить на
public sendExcelInBase64ToBackEnd(data: any) {
this.customOptions = {
headers: this.customHttp.buildHeader(),
};
this.customHttp.Post<SerialResultDTO>('/serialsExcel', data, this.customOptions).subscribe(val => {
this.serialResult = val;
let x = this.serialResult.success;
console.log(x);
console.log(val.success);
})
return null;
}
Комментарии:
1. Благодаря moxximanagarm ваши данные верны, служба возвращает в нижнем регистре, я изменил его, и теперь он работает!!!
2. Привет @Chris. R. , рад, что вы получили необходимый ответ, возможно, вы захотите пометить ответ как принятый и / или проголосовать за него?. Это побудит других выделять больше времени для ответов на вопросы и помощи друг другу.