PrimeNG TreeSelect添加filter属性报无法绑定属性错误
PrimeNG TreeSelect 开启筛选报属性不存在错误修复
问题场景
项目接入PrimeNG新版TreeSelect组件,配置checkbox多选模式,组件代码如下:
<p-treeSelect [(ngModel)]="selectedNode1" [options]="nodes1" [metaKeySelection]="false" selectionMode="checkbox" placeholder="Select Item" display="chip" [filter]="true"></p-treeSelect>
参照官方示例添加[filter]="true"开启筛选功能时,抛出编译错误:
Can't bind to 'filter' since it isn't a known property of 'p-treeSelect'.
控制台默认给出3项排查提示:
- 若'p-treeSelect'为Angular组件且存在'filter'输入属性,请确认该组件已被纳入当前模块的声明范围;
- 若'p-treeSelect'为Web Component,请在当前组件所属@NgModule的schemas配置项中添加'CUSTOM_ELEMENTS_SCHEMA'以屏蔽该提示;
- 若要允许绑定任意属性,请在当前组件所属@NgModule的schemas配置项中添加'NO_ERRORS_SCHEMA'。
已按文档要求正确引入TreeSelectModule依赖:
import {TreeSelectModule} from 'primeng/treeselect';
完成上述提示的排查操作后问题仍存在,筛选功能无法正常使用。
修复方案
按优先级逐一排查处理:
- 优先核对PrimeNG版本与文档版本的匹配性:v15及以上版本的PrimeNG TreeSelect组件,已经将筛选功能的开关属性从
filter改名为showFilter,直接将模板代码里的[filter]="true"替换为[showFilter]="true"即可。 - 如果使用的是v14及更早版本,检查模块引入范围:Angular的模块依赖作用域是隔离的,仅在根模块AppModule引入
TreeSelectModule不生效,当前组件所属的懒加载子模块、独立组件的imports数组中,都需要单独引入TreeSelectModule,组件才能正确识别对应的输入属性。 - 不要通过添加
CUSTOM_ELEMENTS_SCHEMA或NO_ERRORS_SCHEMA的方式屏蔽报错,这两个配置只会隐藏编译提示,不会实际解决属性绑定问题,配置后筛选功能依然无法正常运行。
内容的提问来源于stack exchange,提问作者phalguni_p
相关产品推荐
相关产品推荐

