Я использую ngbtypeahead для получения списка в Angular 6. Я хочу отобразить список на основе некоторых критериев, выбранных в предыдущем текстовом поле
Например.
<input type="text" class="form-control form-control-sm"
id="_state" name="_state" placeholder="State"
[(ngModel)]="_stateLookup" required
[ngbTypeahead]="lookup.search('State', {})"
[inputFormatter]="lookup.formatter" [resultTemplate]="rt"
(blur)="lookup.fillData(form, _stateLookup, '_stateCode', '_stateName')">
<input type="text" class="form-control form-control-sm"
id="_cityCode" name="_cityCode" placeholder="City"
[(ngModel)]="_cityLookup" required
[ngbTypeahead]="lookup.search('City', {'_state': form._stateCode })"
[inputFormatter]="lookup.formatter" [resultTemplate]="rt"
(blur)="lookup.fillData(form, _cityLookup, '_cityCode', '_cityName')">
Мой файл lookup.service.ts имеет функцию ниже
public search(type, searchParams:any) {
let searchObservable = (text$: Observable<string>) =>
text$.pipe(
debounceTime(300),
distinctUntilChanged(),
switchMap(term =>
this.getLookup(type, term, searchParams).pipe(
catchError(() => {
return of([]);
}))
),
map(data => this.handleData(data))
)
return searchObservable;
}
getLookup(lookupType, term, searchParams) {
var lookupURL = "";
searchParams.search = term;
if(lookupType == 'State') { lookupURL = 'master/lookup/getstatelookup'; }
if(lookupType == 'City') { lookupURL = 'master/lookup/getcitylookup'; }
if(searchParams.search != undefined && searchParams.search.length >= this.strLen)
{
console.log(searchParams);
return this.core.post(lookupURL, searchParams);
} else {
return of([]);
}
}
Здесь я передаю _stateCode в качестве параметра в поиске. Тем не менее, он показывает ноль вместо того, что выбрано в State Lookup.
Как я могу получить Город с соответствующим состоянием, выбранным в текстовом поле Штат? NgbTypeahead передает нулевое значение (которое является начальным значением) при вызове