PrimeNg自动填充建议列表在输入慢时显示空字符串

时间:2018-04-18 09:51:06

标签: angular autocomplete primeng

在我的自动填充字段中输入一些字符时,我通常会从后端获取结果列表作为建议。

现在当我键入' slow' (+ - 每个字符0.5秒或更慢)我仍然得到(正确数量)建议列表,但它们都显示为空白。 当我点击空白建议时,我会在字段中显示正确的信息。

filteredCareProviderListDetail: string [];



ngOnInit() {
this.filteredCareProviderListDetail = [];
}

 getFilteredCareProviderList(event) {
const query = event.query;
if (query !== undefined && query !== null) {
  this.careProviderRequestService.getCareProvidersStartingWith(query)

    .subscribe(
      (response) => {
        if (response !== null) {
          this.filteredCareProviderList = response.map(cp => cp.id);
          this.filteredCareProviderListDetail = response.map(cp => cp.id + ' ' + cp.firstName + ' ' + cp.lastName);
        }
      });

}

}

然后是html

<p-autoComplete id="band" formControlName="nihdi"
                        [suggestions]="filteredCareProviderList"
                        (completeMethod)="getFilteredCareProviderList($event)"
                        [maxlength]="11"
                        [minLength]="2"
                        [forceSelection]="true"
                        (onSelect)="submitBandForm()"
                        [size]="18"
                        [immutable]="false">

          <ng-template let-carePorvider pTemplate="item" let-i="index"
                       *ngIf="filteredCareProviderListDetail != null && filteredCareProviderList != null">
            <div class="ui-helper-clearfix" style="border-bottom:1px solid #D5D5D5">
              <div style="font-size:12px;float:left;margin:5px 5px 0 0">{{filteredCareProviderListDetail[i]}}</div>
            </div>
          </ng-template>

        </p-autoComplete>

[immutable] = false我已经添加,因为我在搜索这个问题的某个地方遇到它,他们似乎说它应该有所帮助,但事实并非如此。我可能会误解答案。

目前正致力于角4.4和primeng 4.2

编辑: 我现在也注意到,每一个建议都没有发生,例如:如果我从64开始,我会得到2条建议:第一条将是64123而第二条可能是64999。 现在,如果我再输入一个来指定我想要64999,它将显示一个空白结果;但是,如果我键入641,它将正确显示64123。

为了更进一步,如果我输入649,我得到一个空白的建议,因为我已经说过了,但如果我开始输入64911(所以不正确的一个,它不应该向我显示建议)它仍然显示我一个空白的建议,如果我点击它我会得到64999。

如果我很快输入6499(或更多字符),就不会出现此问题。

0 个答案:

没有答案