如何在PrimeNG的p-autocomplete组件中使用p-input-icon-left输入框图标功能?
当然可以实现!
完全没问题,你可以把PrimeNG的p-autocomplete组件和p-input-icon-left的图标布局结合起来,实现和你给出的输入框示例一模一样的左侧图标效果。
最直接的方式就是用p-input-icon-left容器包裹图标元素和p-autocomplete组件,PrimeNG的样式系统会自动适配这种结构,代码示例如下:
<span class="p-input-icon-left"> <i class="pi pi-search"></i> <p-autoComplete [(ngModel)]="selectedItem" [suggestions]="filteredItems" (completeMethod)="filterItems($event)" placeholder="Search" inputStyleClass="w-full"> </p-autoComplete> </span>
关键点说明:
inputStyleClass="w-full"确保自动完成输入框填满整个容器,避免图标和输入框宽度不协调的问题- 图标使用PrimeNG的图标类(比如
pi pi-search)即可,和你原来的示例保持一致 - 这个结构会自动继承
p-input-icon-left的样式,图标会正确悬浮在输入框左侧,不会影响自动完成的下拉提示功能
如果你需要更深度的自定义(比如修改输入框的内部结构),也可以利用p-autocomplete的input模板来自定义输入区域:
<p-autoComplete [(ngModel)]="selectedItem" [suggestions]="filteredItems" (completeMethod)="filterItems($event)"> <ng-template pTemplate="input"> <span class="p-input-icon-left"> <i class="pi pi-search"></i> <input type="text" pInputText [(ngModel)]="selectedItem" placeholder="Search" class="w-full"> </span> </ng-template> </p-autoComplete>
两种方式都能实现你想要的效果,第一种更简洁,第二种适合需要额外定制输入框的场景。
内容的提问来源于stack exchange,提问作者Dom Gibson
相关产品推荐
相关产品推荐

