在我的自动填充字段中输入一些字符时,我通常会从后端获取结果列表作为建议。
现在当我键入' 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(或更多字符),就不会出现此问题。