angular - 管道变换功能
问题描述
我是 Angular 的新手。
你能解释一下转换函数是如何工作的,例如在这个例子中: search input field in angular?
在第一个答案中,有一个:
transform(value: any, searchValue): any {
if (!searchValue) return value;
return value.filter((v) =>
v.name.toLowerCase().indexOf(searchValue.toLowerCase()) > -1 ||
v.size.toLowerCase().indexOf(searchValue.toLowerCase()) > -1)
}
这段代码有什么作用?
if (!searchValue) return value;
解决方案
您的管道变换方法有 2 个参数value
和searchValue
. 它会检查您的 searchValue 是否为 falsy 。如果它是虚假的,它将按原样返回 value 参数。否则它将根据传递的 searchValue 过滤值数组。通过检查包含 searchValue 的值数组的每个项目的名称或大小(转换为小写)字段来完成过滤。
注意:JavaScript 中只有六个假值:undefined、null、NaN、0、""(空字符串)和 false
在模板中使用管道
{{ value | pipename:searchValue }}
pipename
- 是你的管道名称
value
- 是你的转换方法的第一个参数
searchValue
- 是你的转换方法的第二个参数
推荐阅读
- linux - 这个奇怪的构造“{} \;”是什么意思?方法?
- ios - 任何方式将语音转换为文本,如谷歌为 iPhone 的搜索框做的?
- node.js - npm install --save opencv4nodejs
- r - 使用 dplyr 进行表转换
- android - 在 RecyclerView 中显示/隐藏工具栏中任何事件的视图
- python - 使用熊猫连续出现多个组时如何明智地添加数字组
- mysql - 使用自动增量的 SQL 插入
- kotlin - 如何在 Kotlin 中将注释应用于委托属性的 getter?
- javascript - 如何根据使用单一表单选择的单选按钮修复用于不同页面的代码
- python - 在 Python 中根据偏好覆盖分割掩码