Keyup.ENTER事件的Angular2-NULL Exception-DataTable过滤器 - 服务器端过滤

时间:2017-01-17 13:15:38

标签: angular primeng

每当用户在PRIME NG数据表的搜索文本框中按下“ENTER”键(我使用Angular2的(keyup.enter)事件来激活服务方法时),其结果为空异常。实际操作涉及当用户在过滤器文本框中输入数据并按“输入”时。关键,数据过滤将在服务器端进行(Asp.NET WEB API),数据将显示在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

1 个答案:

答案 0 :(得分:0)

最后我了解了代码中的问题,也就是说,我们不应该在component.ts文件中的任何地方将p-datable的值设置为NULL。在这种情况下&#34; vContactsModels&#34;在ngOnInit()方法中加载数据之前设置为NULL。快乐的编码:)