angular - 如何使用 @Input 在 *ngFor 指令中设置管道
问题描述
我有一个有 3 个输入参数的组件
- json_columns
- json_rows
- 名称过滤器
我怎样才能使它name_filter
被设置为过滤该组数据的管道?
组件.ts
@Input('json_columns') columns:[{}];
@Input('json_rows') rows:[{}];
//Pipe
@Input('name_filter') filter:string;
组件.html
<tr *ngFor="let item of filas | filter: searchItem; let i=index" >
{{item.nombre}}
</tr>
解决方案
一种方法是创建一个函数“getFilas()”并在函数中实现过滤器
请参阅此示例:https ://stackblitz.com/edit/angular-filter-data-in-component
这是模板
<div *ngFor="let item of getData(); let i=index">
{{i}} - {{item.name}} {{ item | json }}
</div>
这是组件中的相关代码
@Input() field: string;
@Input() value: string;
@Input() data: any[];
getData() {
return this.data.filter((item) => {
return item[this.field] == this.value;
})
}
推荐阅读
- python - 如何通过 R 或 python 将月份值拆分为天值?
- javascript - 如何在 Angular 7 中同时运行两个不同的项目
- robot - 如何从 Choregraphe 项目中打开/关闭自主生活
- angular - 如何在Angular中添加滚动类
- java - 如何在java中从txt文件中读取冒号分隔值
- laravel - Laravel Maatwebsite 只准备 excel 文件而不创建导入和保存文件
- python - 可以将输入字符串转换为 Python 中的可调用函数对象吗?
- git - 我无法使用我的原始帐户进行提交
- ios - 我们如何才能在分段控制中获得分段的矩形框?
- c - 如何修复双端队列实现