以下是所有FilterOperators的列表:sapui5.netweaver.ondemand.com
我的代码:
var searchValue = "searching";
var myFilter = new sap.ui.model.Filter("var", sap.ui.model.FilterOperator.Contains, searchValue, false);
但是这样,如果它们在键“var”中包含字符串“search”,则将选择所有项目。如果选择项目的过滤器只有在“var”键中没有字符串searchValue时才能编写过滤器?
示例:
var = {(A,B,C), (B,C,D), (C,D,E)};
searchValue = "A";
//after filtering
result = {(B,C,D), (C,D,E)};
答案 0 :(得分:0)
知道你正在使用什么样的模型会很好。总之...
目前没有"开箱即用"支持这一点。你可以做的是使用"测试" sap.ui.model.Filter的属性,它将是您的自定义比较的函数(因此您将实现您想要的)。这适用于JSONModel。但是,由于OData实际上是服务器端模型,我假设ODataModel的实现将忽略"测试"功能。
如果您使用的是OData,那么您通常会获得一些好处。 OData 2.0 spec允许"逻辑否定"。例如,获取客户名称不包含的所有客户的列表" Al"你可以这样称呼:
然而,似乎UI5的ODataModel目前没有官方支持。我检查了sap.ui.model.odata.ODataUtils的代码,并且没有处理"逻辑否定"。你可以在这里做的是创建URL字符串,包括带有逻辑否定的$ filter,然后自己执行GET请求以获取数据。另一种选择是扩展UI5本身,但我认为这可能会有点棘手......
我想这值得https://github.com/SAP/openui5/的功能请求: - )