【问题标题】:Property 'value' does not exist on type 'FilterMetadata' on primeng tableprimeng 表上的“FilterMetadata”类型上不存在属性“值”
【发布时间】:2021-05-02 10:57:53
【问题描述】:

我正在将一个模块从 primeng 7 迁移到 primeng11 以及 angular11,代码在 ng serve 上运行得非常好,功能也可以正常工作,但是在构建时我遇到了一个奇怪的错误

 error TS2339: Property 'value' does not exist on type 'FilterMetadata | FilterMetadata[]'.
  Property 'value' does not exist on type 'FilterMetadata'.

错误是针对下面的代码

<input *ngIf='!col.noFilter' [style.width]="'98%'" [style.height]="'25px'" pInputText type="text"
                        [placeholder]="col.filterPlaceHolder ? col.filterPlaceHolder : ''" 
                        (input)="dt.filter($event.target.value, col.field, col.filterMatchMode)" 
                        [value]="dt.filters[col.field]?.value" />
 

我已经验证了primengFilterMetaData接口,它具有如下属性值

export interface FilterMetadata {
    value?: any;
    matchMode?: string;
    operator?: string;
}

代码语法很好,我已经在primeng页面文档https://www.primefaces.org/primeng/showcase/#/table验证了相同的代码

请帮助不确定为什么 ng serve 没有问题但构建失败。我的节点版本是node v10.23.0

【问题讨论】:

  • 我也有同样的问题

标签: angular typescript primeng angular11 primeng-datatable


【解决方案1】:

您的语法中有错字。我希望您使用的是全局搜索功能,语法应该是 (input)="dt.filterGlobal()" 而不是 (input)="dt.filter()"强>。

<input *ngIf='!col.noFilter' [style.width]="'98%'" [style.height]="'25px'" pInputText type="text" [placeholder]="col.filterPlaceHolder ? col.filterPlaceHolder : ''" (input)="dt.filterGlobal($event.target.value, col.field, col.filterMatchMode) />

【讨论】:

  • 不,这些是列级别的单个过滤器..不是全局过滤器。
  • 您是否在列定义中设置了匹配模式? {field:'name',headerName:'Name',filterMatchMode:'contains'}
【解决方案2】:

尝试替换此行

[value]="dt.filters[col.field]?.value

与其他人

[value]="$any(dt).filters[col.field]?.value"

希望对你有用

【讨论】:

    【解决方案3】:

    Angular/PrimeNg:12+

    这对我有用:

    注意:您可以在此处查看$any 的用法。

     <input pInputText type="text" (input)="dt.filter($any($event.target)?.value, 'name', 'contains')"
     [value]="$any(dt.filters['name'])?.value" placeholder="Search by Name" class="p-column-filter">
    

    参考:https://github.com/angular/angular/issues/35293#issuecomment-584293328

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-15
      • 1970-01-01
      • 2017-06-23
      • 2019-02-17
      • 2017-10-06
      • 1970-01-01
      • 2021-01-09
      • 2021-05-18
      相关资源
      最近更新 更多