#angular #typescript #frontend
Вопрос:
Мне нужно знать, что означает эта ошибка в моем коде ниже. Это метод Post для передачи данных в БД, и эта ошибка возникла как «Свойство»json» не существует для типа «Пользователь»». Проверьте код ниже.
Угловая версия: 12.2.12 Узел: 16.13.0 Менеджер пакетов: npm 8.1.2
// model.ts export class User{ UserID : number UserName : string FirstName : string LastName : string Email : string Password : string ConfrimPass : string UserRole : string Authorize_building :string } //component.ts resetForm(form? : NgForm) { if (form != null) form.reset(); this.userService.selectUser = { UserID: null, UserName: '', FirstName: '', LastName: '', Email: '', Password: '', ConfrimPass: '', UserRole: '', Authorize_building: '', } } //service.ts PostUser(usr : User): Observablelt;Usergt;{ var body = JSON.stringify(usr); var headerOption = new Headers({ 'Content-Type' : 'application/json' }); var requestOption = new RequestOPtions({ method: RequestMethod.Post, headers: headerOption }); // return this.http.post('https://localhost:44339/api/Users', body, requestOption).map(x =gt; x.json()); var headersOption = ({ 'Content-Type' : 'application/json' }); var body = JSON.stringify(usr); return this.http.postlt;Usergt;('https://localhost:44339/api/Users', body, { headers: headersOption } ).map(x =gt; x.json()); }; }
Мне нужно решение для этого!
Комментарии:
1.
json
метод не существует вUser
классе.2. http.post() вернет наблюдаемый ответ, для которого на карте потребуется объект типа response.
Ответ №1:
Я бы попробовал ввести ответ, утвердив его:
От…
.map(x =gt; x.json());
Я бы сделал
.map((x: Type) =gt; x.json())
Ответ №2:
Попробуйте использовать карту внутри оператора трубы, как показано ниже.
.pipe(map((response) =gt; response.json()))
Также импортируйте map
и pipe
из RxJS, как это.
import { map, pipe } from 'rxjs/operators'