【发布时间】:2019-03-26 06:49:43
【问题描述】:
我想在 Angular 7 中编写一个通用过滤器,以对任意数量屏幕中的任意字段执行搜索过滤操作。我发现一些链接建议编写自定义管道过滤器,但它们总是根据特定的静态字段进行过滤。
为了解释更多,我的项目中有大约 20 个屏幕。每个屏幕都在进行 API 调用,获取数据并在 UI 上显示,就像设备屏幕显示字段数据一样:
deviceId, deviceHardwareNumber, deviceSoftwareNumber, deviceVendor, devicePurchaseDate
deviceServiceDetails 的另一个屏幕
deviceId, deviceServiceProvider, deviceServiceDate, nextServiceDueDate
现在我可以为 20 个屏幕编写 20 个过滤器以过滤不同的字段名称,或者有什么方法可以只为所有屏幕编写一个过滤器并过滤任何字段。
有没有办法通过编写一个过滤器来使其动态化,而不考虑屏幕的数量,即从任何屏幕传递的任何列表或 searchText 都应该被过滤并返回?
【问题讨论】:
-
你能提供更多细节吗?您要过滤的数据列表是什么?
-
编辑问题以添加更多详细信息
-
哦,好吧,这有点像过滤对象数组,但使用动态过滤?
-
是的,我想使用 ngFor 过滤显示在 UI 上的对象数组,但使用动态过滤
-
所以你想做Angular官方文档建议不要做的事情? angular.io/guide/pipes#appendix-no-filterpipe-or-orderbypipe