Я пытаюсь позвонить в свой бэкэнд с помощью angular.У меня уже есть метод get / delete works.
Но у меня есть проблема с "POST".
Я использую swaggercode-gen для генерации всех своих классов в TS.
Но когда я выполняю вызов моей функции создания, у меня появляется это сообщение: «Аргумент сообщения типа Employee не может быть назначен параметру типа события»
Employee - это мой собственный класс.
Iмного чего попробуйте, я пытаюсь изменить свою форму, я пытаюсь изменить файл машинописного текста (он указывает, что нет).
Swagger-codegen генерирует для меня файл employee.ts, этот файл в порядке.
Он также генерирует файл employee.service.ts с моей функцией создания:
employee.service.ts:
public createEmployee(observe?: 'body', reportProgress?: boolean): Observable<any>;
public createEmployee(observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;
public createEmployee(observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;
public createEmployee(observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
let headers = this.defaultHeaders;
// to determine the Accept header
let httpHeaderAccepts: string[] = [
];
const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
if (httpHeaderAcceptSelected != undefined) {
headers = headers.set('Accept', httpHeaderAcceptSelected);
}
// to determine the Content-Type header
const consumes: string[] = [
'application/json'
];
return this.httpClient.post<any>(`${this.basePath}/employees/createEmployee`,
null,
{
withCredentials: this.configuration.withCredentials,
headers: headers,
observe: observe,
reportProgress: reportProgress
}
);
}
Моя форма:
employee-form.component.html:
<form #employeeForm="ngForm" (ngSubmit)="create()">
<div class="form-group row">
<label for="inputEmail3" class="col-sm-2 col-form-label">Matricule</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="idEmployee" [(ngModel)]="employee.idEmployee" name="idEmployee"/>
</div>
</div>
<div class="form-group row">
<label for="inputEmail3" class="col-sm-2 col-form-label">Nom</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="lastName" [(ngModel)]="employee.lastName" name="lastName"/>
</div>
</div>.
[...]
<div class="form-group row">
<div class="col-sm-1">
<button type="submit" class="btn btn-primary">Créer</button>
</div>
<div class="col-sm-1">
<a class="btn btn-secondary" href="javascript:history.go(-1)">Retour</a>
</div>
</div>
</form>
Файл сценария моего типа:
employee-form.component.ts:
@Component({
selector: 'adv-employee-form',
templateUrl: './employee-form.component.html',
providers: [EmployeeService],
styles: []
})
export class EmployeeFormComponent implements OnInit {
employee: Employee;
constructor(private router: Router, private employeeService: EmployeeService) { }
ngOnInit() {
}
create() {
this.employeeService.createEmployee(this.employee)//<- The error appear here
.pipe(finalize(() => this.router.navigate(['/employees-list']))).subscribe();
}
}
Кажется так.employee не распознается правильно.
Я пытаюсь изменить employee-form.component.ts и установить: employee: any = Employee;
Ошибка исчезает.Но когда я публикую свою форму, у меня появляется ошибка:
ERROR Error: Unreachable: unhandled observe type [object Object]}