javascript - 如何使用 Angular 管道过滤掉空值?
问题描述
我目前有一个角管,它根据用户的输入过滤结果。我遇到的唯一问题是某些结果没有值,因此,我收到以下错误:
无法读取 null 的属性“toLocaleLowerCase”
我的管道看起来像这样。
transform(value: QueuedTemplateDto[], filterBy: string): QueuedTemplateDto[] {
filterBy = filterBy ? filterBy.toLocaleLowerCase() : null;
return filterBy
? value.filter((check: QueuedTemplateDto) => check.user.toLocaleLowerCase().indexOf(filterBy) !== -1)
: value;
}
所以我试图添加一个 if 语句,它只允许执行代码是 check.user 用户属性不是 null 但是每次我尝试输入这个时我都会收到一个错误
在这方面,我的 JavaScript 知识是有限的。任何帮助将不胜感激!
解决方案
您只需要检查是否定义了用户属性(null
),因此check.user !== null
在您的过滤器语句之前添加(忽略所有虚假值只需使用check.user
)。
transform(value: QueuedTemplateDto[], filterBy: string): QueuedTemplateDto[] {
filterBy = filterBy ? filterBy.toLocaleLowerCase() : null;
return filterBy ? value.filter((check: QueuedTemplateDto) =>
check.user !== null && check.user.toLocaleLowerCase().indexOf(filterBy) !== -1) : value;}
//^^^^^^^^^^^^^^^^^^^^^ ----- here
仅供参考:您可以根据您的要求更改条件。
推荐阅读
- java - 作为环境变量传递时无法解码货币符号的 unicode
- memory - 旋转模型检查器 - 错误:由于 yacc 堆栈大小而耗尽内存
- groovy - Groovy findFiles 在上层目录中
- typescript - TypeScript:如何使用特殊代码将字符串解码为 html?
- raspberry-pi3 - 使用树莓派 3 在谷歌助手 sdk 上到达目的地的时间
- java - 当列表视图在android中很大时选择列表项时出错?
- sql - 在其他列 SQL 中查找列(字符串)的出现
- javascript - 如何使用应用程序脚本将一个子文件夹中的某些电子表格中的值复制到另一个电子表格
- debugging - 如何调试 Outlook Web 加载项?
- awk - Awk 添加每年的平均外汇汇率