ERROR TypeError: Cannot read property 'slice' of undefined at Search function - Angular 2+
ERROR TypeError: Cannot read property 'slice' of undefined at Search function - Angular 2+
我有一个正在实施的 angular5-data-table
模块。我能够使用它的所有功能。此外,我想在其上添加搜索功能。我添加了下面的代码(html 和打字稿),我开始收到 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[];
我不确定我是否理解错误。有什么想法吗?
基于 DataTableResource
class 中的代码行:
看起来 "query" 方法试图切片它自己的项目,这是在它的构造函数中设置的。你在这里这样做:
this.tableResource = new DataTableResource(members);
所以如果没有定义members
,它会切片失败并抛出那个错误。确保在初始化数据 table.
之前定义了 members
我有一个正在实施的 angular5-data-table
模块。我能够使用它的所有功能。此外,我想在其上添加搜索功能。我添加了下面的代码(html 和打字稿),我开始收到 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[];
我不确定我是否理解错误。有什么想法吗?
基于 DataTableResource
class 中的代码行:
看起来 "query" 方法试图切片它自己的项目,这是在它的构造函数中设置的。你在这里这样做:
this.tableResource = new DataTableResource(members);
所以如果没有定义members
,它会切片失败并抛出那个错误。确保在初始化数据 table.
members