Keyup.ENTER 事件服务器端过滤上的 Angular2-NULL 异常数据表过滤器

Angular2-NULL Exception-DataTable Filter on Keyup.ENTER event-Server side filtering

每当用户在 PRIME NG Data table 的搜索文本框中按下“ENTER”键(我使用了 Angular2 的 (keyup.enter) 事件来触发服务方法),它以空异常。实际操作是当用户在过滤文本框中输入数据并按下'ENTER'键时,会在服务器端(Asp.NETWEBAPI)进行数据过滤,数据将显示在 GRID 中。

Console.log如下:

core.umd.js:2844 TypeError: Cannot read property 'length' of null
    at DataTable._filter (http:.../node_modules/primeng/components/datatable/datatable.js:773:43)
    at DataTable.filter (http:.../node_modules/primeng/components/datatable/datatable.js:755:14)

component.html

                <p-dataTable #userTable [value]="vContactsModels" selectionMode="single" [(selection)]="single" (onRowSelect)="onRowSelectGridEvent('user')" resizableColumns="true"
                             [paginator]="true" [rows]="10" totalRecords="120" [rowsPerPageOptions]="[10,20,30]" [responsive]="true" (onFilter)="onTableFiltered()" (keyup.enter)="filterDataFromServer($event)">>
                    <p-column field="UID" header="UID" [sortable]="true" [filter]="true"></p-column>

我正在使用最新版本的 PRIME NG (1.1.4) 和 Angular2

终于知道了代码中的问题,就是我们不应该在component.ts文件的任何地方将p-datable的值设置为NULL。在这种情况下,"vContactsModels" 在 ngOnInit() 方法中加载数据之前被设置为 NULL。编码愉快:)