我正在实施一个angular5-data-table
模块。我能够使用它的所有功能。另外,我想在其上添加搜索功能。我添加了下面的代码(包括html和typescript),我开始收到ERROR TypeError: Cannot read property 'slice' of undefined
错误。
我的搜索HTML是:
<input type="text" class="form-control input-md" placeholder="Search by full name" #query (keyup)="searchMember(query.value)" [(ngModel)]="filter.name">
此searchMember(query.value)
背后的代码是:
searchMember(query: string) {
let members = this.allMembers;
if (this.filter.firstName) {
members = members.filter(o => o.firstName.toLowerCase().includes(query.toLowerCase()));
}
this.members = members;
this.initializeTable(this.members);
console.log(members);
}
以下是initializeTable()
:
private initializeTable(members: Member[]) {
this.tableResource = new DataTableResource(members);
this.tableResource.query({ offset: 0 }).then(items => this.items = items);
this.tableResource.count().then(count => this.itemCount = count);
}
最后,这里是初始化:
filter: any = {};
tableResource: DataTableResource<Member>;
allMembers: Member[];
我不确定我是否理解错误。有什么想法吗?
答案 0 :(得分:0)
基于DataTableResource
类中的代码行:
看起来“查询”方法试图对它自己的项进行切片,这是在它的构造函数中设置的。你在这里这样做:
this.tableResource = new DataTableResource(members);
因此,如果未定义members
,则无法切片并抛出该错误。确保在初始化数据表之前定义了members
。