ngbTypeahead - параметры передачи - PullRequest
0 голосов
/ 13 мая 2019

Я использую ngbTypeahead для функции поиска по типу, но мне интересно, могу ли я передать параметры в функцию поиска.

<input id="typeahead-basic" type="text" class="form-control" [(ngModel)]="model" [ngbTypeahead]="search(param1, param2)"/>

угловая

search = (text$: Observable<string>) =>
text$.pipe(
  debounceTime(300),
  distinctUntilChanged(),
  tap(() => (this.searching = true)),
  switchMap(term =>
    this.underwritingServiceWrapper.search(term).pipe(
      tap(() => (this.searchFailed = false)),
      catchError(() => {
        this.searchFailed = true;
        return of([]);
      })
    )
  ),
  tap(() => (this.searching = false))
)

Я проверил это, но, кажется, не работает. Дополнительный параметр угловой начальной загрузки 2 нг для печатающей головки

Может кто-нибудь помочь мне с примером?

1 Ответ

1 голос
/ 13 мая 2019

Предполагается, что вход ngbTypeahead является функцией, которая принимает наблюдаемую строку в качестве аргумента и возвращает наблюдаемую часть массива или результатов. То есть он должен иметь тип (text: Observable<string>) => Observable<any[]> (как указывает API).

Ваш код был бы в порядке, если бы search был методом, принимающим два параметра и возвращающим такую ​​функцию:

search(param1: SomeType, param2: SomeOtherType): (text: Observable<string>) => Observable<any[]> {
  return (text$: Observable<string>) => text$.pipe(
    ...
  );
} 

Но это не так. Я не уверен, чего ты хочешь достичь здесь. Может быть, вам просто нужно использовать this.param1 и this.param2 в вашей функции:

search = (text$: Observable<string>) =>
  text$.pipe(
    // use this.param1 and this.param2 here 
  );
...