У меня есть класс обслуживания с вызовом API, который принимает значение из выпадающего списка. Но значение из выпадающего списка всегда равно нулю. Так что это сервис с вызовом API:
ExtendedSearchService
selectedValue: string;
filerByRegistration() {
console.log('registration filter2 ');
this.participantService
.filterParticipantsByRegistration(1, this.selectedValue as any, moment(this.startDate).format('YYYY MM D'))
.subscribe(filterByRegistration => {
console.log('selected value:', this.selectedValue);
this.filterparticipantByRegistration.emit(filterByRegistration);
});
}
И это компонент:
Конструктор:
constructor(
private qrCodeDefinitonService: QRCodeDefinitionService,
private echeqDefinitionService: EcheqDefinitionService,
private extendedSearchService: ExtendedSearchService
) {}
и
звонок из службы:
if (this.selectedSearch === 'Registratie') {
console.log('registration99')
this.extendedSearchService.filerByRegistration();
}
и шаблон:
<div class="search-select searchstatus" *ngIf="selectedSearch && hasStatusOptions(selectedSearch)">
<mat-select
placeholder="Status"
name="status"
[(ngModel)]="selectedValue"
(ngModelChange)="onChange($event)"
>
<mat-option value="">--Selecteer een status--</mat-option>
<mat-option *ngFor="let option of getStatusOptions(selectedSearch)" [value]="option.apiStatus">
{{ option.status }}
</mat-option>
</mat-select>
</div>
А это ошибка:
ERROR Error: Required parameter filter was null or undefined when calling filterParticipantsByRegistration.
Спасибовы
это просто вызов API:
public filterParticipantsByRegistration(organisationId: number, filter: 'Invited' | 'Registered', start: string, observe?: 'body', reportProgress?: boolean): Observable<Array<ParticipantInfoDTO>>;
Очень странно, потому что я получаю правильное значение обратно, если я сделаю это:
searchFor() {
if (this.selectedSearch === 'Registratie') {
console.log('registration99', this.selectedValue);
this.extendedSearchService.filerByRegistration();
}
registration99 Invited
Но мне нужно свойство selectedValue, например:
filerByRegistration(selectedValue: any) {
console.log('registration filter2 ');
this.participantService
.filterParticipantsByRegistration(1, selectedValue as any, moment(this.startDate).format('YYYY MM D'))
.subscribe(filterByRegistration => {
console.log('selected value:', selectedValue);
this.filterparticipantByRegistration.emit(filterByRegistration);
});
}
И я изменил это:
this.extendedSearchService.filerByRegistration(this.selectedValue);