Angular 7 - ng2-complete - ошибка при использовании сканера в качестве источника ввода - PullRequest
0 голосов
/ 14 февраля 2020

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

Он работает просто отлично, когда я использую вставку или когда я вводю какой-то текст, но если я использую сканер или просто слишком быстро, удаленный поиск не работает.

Я использую 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, а вход со сканера слишком быстрый!

...