У меня проблемы с разработкой, как избавиться от этой ошибки.
this.ticketService.updateTicket(this.edit_ticket)
this.edit_ticket подчеркнут красным и говорит, что тип 'string' нельзя назначить типу 'Number'.
В модели edit_ticket "timeInHours" и "price" являются числами, но я не знаю, как мне объявить их в формате json.
Я пытался
timeInHours: Number;
, но тогда возникает еще одна ошибка: тип 'string' нельзя назначить типу 'NumberConstructor'.
Если я правильно понимаю, значения, которые я получаю из HTML, являются строками, даже из числового ввода. Как я могу это изменить?
Редактирование работает нормально, но ошибка в IDE раздражает.
Код ниже.
edit_ticket = {
_id: '',
timeInHours: '',
location: '',
price: '',
vehRegistration: '',
email: '',
mobile: ''
}
editTicket(){
this.edit_ticket._id = this.id;
this.edit_ticket.timeInHours = (<HTMLInputElement>document.getElementById('timeInput')).value;
this.edit_ticket.location = (<HTMLInputElement>document.getElementById('locInput')).value;
this.edit_ticket.price = (<HTMLInputElement>document.getElementById('priceInput')).value;
this.edit_ticket.vehRegistration = (<HTMLInputElement>document.getElementById('regInput')).value;
this.edit_ticket.email = (<HTMLInputElement>document.getElementById('emailInput')).value;
this.edit_ticket.mobile = (<HTMLInputElement>document.getElementById('mobInput')).value;
this.ticketService.updateTicket(this.edit_ticket)
.subscribe((data)=>{
console.log("success");
});
Код службы билетов:
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Ticket } from './ticket';
import { Observable } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class TicketService {
private apiUrl: string = "http://localhost:3000/tickets/";
constructor(private http: HttpClient) { }
getTickets(): Observable<Ticket[]>{
return this.http.get<Ticket[]>(this.apiUrl);
}
getTicketsByReg(reg): Observable<Ticket[]>{
console.log(this.apiUrl + "reg/" + reg);
return this.http.get<Ticket[]>(this.apiUrl + "reg/" + reg);
}
getTicketById(id): Observable<Ticket>{
console.log(this.apiUrl + id);
return this.http.get<Ticket>(this.apiUrl + id);
}
deleteTicket(id): Observable<Ticket>{
console.log(this.apiUrl + id);
return this.http.delete<Ticket>(this.apiUrl + id);
}
updateTicket(ticket: Ticket): Observable<any>{
const headers = new HttpHeaders()
.append('Content-Type' , 'application/json');
return this.http.put(this.apiUrl + ticket._id, ticket);
}
}