Я пытаюсь выяснить, почему удаленный поиск не запускается, когда я использую сканер для ввода некоторого текста.
Он работает просто отлично, когда я использую вставку или когда я вводю какой-то текст, но если я использую сканер или просто слишком быстро, удаленный поиск не работает.
Я использую Angular 7 и ng2-завершитель 3.0.2
Я отладил библиотеку и понял, что searchTimer
очищается, прежде чем он действительно может выполнить поиск
this.searchTimer = timer(this.ctrListPause).pipe(take(1)).subscribe(function () {
_this.searchTimerComplete(term);
});
searchTimerComplete
- это метод, который никогда не достигается, потому что я думаю, что searchTimer
очищен, и я думаю, что это может быть потому, что ввод вводится слишком быстро, и если term.length < minLengthBeforeSearch
, то очистка запрограммирована на выполнение через 50 мс после того, как эта строка была прочитана, так что, я думаю, что на время, когда я заканчиваю sh сканирование кода, это уже какое-то четкое расписание.
Вопрос: использование сканера - это не то же самое, что использование копирования и вставки. Что я могу сделать, чтобы решить эту проблему?
Это мой ng2-завершитель:
<ng2-completer fxFlex
[disableInput]="disable"
[autoMatch]="autoMatch"
[datasource]="dataServiceRemote"
[placeholder]="placeholder"
[(ngModel)]="model[titleField]"
[minSearchLength]="minSearchLength"
[inputName]="inputName"
[textNoResults]="textNoResults"
[textSearching]="textSearching"
[pause]="0"
[fieldTabindex]="fieldTabindex"
(selected)="onSelected($event)">
</ng2-completer>
И ничего не изменится, если я попытаюсь с PAUSE=0
, PAUSE=10
(значение по умолчанию), PAUSE=300
, PAUSE=1000
.
searchTimerComplete
никогда не выполняется, поскольку значение по умолчанию CLEAR
равно 50, а вход со сканера слишком быстрый!