Angular2 pipe 输入搜索筛选器在angular2上不工作
我面临以下错误:Angular2 pipe 输入搜索筛选器在angular2上不工作,angular2-pipe,Angular2 Pipe,我面临以下错误: EXCEPTION: Error in ./UserComponent class UserComponent - inline template:217:14 caused by: Cannot read property 'toLowerCase' of undefined 它只是一个带有搜索输入页面的用户列表。 模板如下所示: <tr *ngFor="let user of users | sUser: TxtSearch"> <
EXCEPTION: Error in ./UserComponent class UserComponent - inline template:217:14 caused by: Cannot read property 'toLowerCase' of undefined
它只是一个带有搜索输入页面的用户列表。
模板如下所示:
<tr *ngFor="let user of users | sUser: TxtSearch">
<td>{{user.userid}}</td>
<td>{{user.username}}</td>
<td>{{user.email}}</td>
<td>{{user.fullname}}</td>
<td>
<button class="btn btn-warning btn-circle-sm" (click)="showEditUser(i, user._id,user)"><span class="glyphicon glyphicon-edit"></span></button>
</td>
<td>
<button class="btn btn-danger btn-circle-sm" (click)="showRemoveUser(user._id, user.username)"><span class="glyphicon glyphicon-remove"></span></button>
</td>
</tr>
管道/过滤器声明位于app.module中
管道中的toLowerCase()函数有什么问题?我需要进口别的东西吗?
有什么想法吗
多谢各位
/Koul更改转换函数并将传递值类型修改为“any[]”。希望能有帮助
transform(value: any[], args?: any): any {
if(args === undefined || args === '')
return value;
return value.filter(function(val){
return val.username.toLowerCase().includes(args.toLowerCase());
});
}
如果您实际读取了错误,您就会知道
val.username
是未定义的
。因此,在尝试调用toLowerCase()
之前,只需对其进行检查即可。您还可以为args
添加安全检查:
transform(value: any[], args?: any): any[] {
if(args === undefined || args === '') return value;
return value.filter(function(val) {
if (!val.username || !args) return false;
return val.username.toLowerCase().includes(args.toLowerCase());
});
}
出于某种原因,它可以在不改变一行代码的情况下工作。我怎么不知道!!
transform(value: any[], args?: any): any {
if(args === undefined || args === '')
return value;
return value.filter(function(val){
return val.username.toLowerCase().includes(args.toLowerCase());
});
}
transform(value: any[], args?: any): any[] {
if(args === undefined || args === '') return value;
return value.filter(function(val) {
if (!val.username || !args) return false;
return val.username.toLowerCase().includes(args.toLowerCase());
});
}