
今天我们正在给一张销售订单表加搜索框,需求很直接,输入客户名称后,只保留名称匹配的订单。熟悉 Angular 和 RxJS 的开发人员很自然地会想到filter,因为在 RxJS 里,我们经常把输入事件放进一条 Observable 管道,再用filter决定哪些值可以继续向下游传递。回到 SAP UI5 后,代码里同样能找到filter这个名字,也能找到sap.ui.model.Filter,表面看起来似乎存在一套一一对应的 API。真正落到代码层面,结论需要说得更精确一些。SAP UI5 里有与 RxJSfilter功能相似的机制,其中最接近的是sap.ui.model.Filter配合sap.ui.model.ListBinding.filter。不过它们主要服务于模型绑定和列表数据筛选,并不是一个接收 Observable、逐个检查事件值、再返回新 Observable 的流式 Operator。SAP UI5 自身没有内置一个可以完全等价替代 RxJSfilter的通用响应式流算子。官方 RxJS 文档对filter的定义很明确,它接收源 Observable 发出的每个值,把值交给 predicate 函数,只有 predicate 返回true的值才会继续发出。Pipeable Operator 不修改原 Observable,而是生成一个新的 Observable。(