javascript - 过滤 ListItem 和 sap.m.List 中的格式化元素
问题描述
我一直在为列表开发过滤器。我的列表根据实际数据记录中的两个条目在项目中显示一个图标。
new sap.ui.core.Icon({
src : {
parts : [
{ path : "Model>date" },
{ path : "Model>inventory" }
],
formatter : function(date, inventory) {
if (!inventory) {
return "sap-icon://decline";
}
if (date != "31.12.9999") {
return "sap-icon://decline";
}
return "sap-icon://accept";
}
}
})
现在我将为这些信息实现一个过滤器:
- a) 使用拒绝图标显示所有条目
- b) 显示带有接受图标的所有条目
我的问题是过滤器只接受一个路径元素。
var dateFilter =new sap.ui.model.Filter({
path : "date",
test : function(date) {
//pseudo code
if(#filter-true)
show entries with accept;
else
show entries with decline;
}
});
aFilters.push(dateFilter)
但实际上我不知道实现这个过滤器。有人能帮助我吗?
PS:我知道我的语法不是最好的;)
解决方案
您可以组合依赖于不同路径的多个过滤器。
var oDateFilter = new sap.ui.model.Filter({
path : "date",
test : function(sDate) {
if(sDate === "31.12.9999"){
return true;
}
return false;
}
});
上面的代码创建了一个过滤器,该过滤器使用模型的“日期”属性进行操作。
var oInventoryFilter = new sap.ui.model.Filter({
path : "inventory",
test : function(bInventory) {
if(bInventory !== true){
return false;
}
return true;
}
});
上面的代码使用“inventory”属性创建了一个过滤器。现在,我们通过以下代码组合它:
var oCombinedFilter = new sap.ui.model.Filter({
filters: [oDateFilter, oInventoryFilter],
and: true
});
对于将inventory 属性设置为true(确保参数是布尔值!)并且日期设置为“31.12.9999”的所有元素,此过滤器返回true。
有关更多信息,请参阅sap.ui.model.Filter。
推荐阅读
- python - tabula pdf到数据框,相同的pdf格式,不同的结果python
- go - 无法设置 Echo 框架
- r - 下标越界 - 将电子表格与数据矩阵相结合
- connection-pooling - 设计问题 - 为来自应用程序的不同类型的出站呼叫配置连接池
- android - 如何在firestore中的数据更新时显示通知
- php - WordPress - 将用户元用于“user_register”钩子中的 if else 语句
- unix - 通过 SSH 运行的命令的密码以明文形式显示
- pytorch - 使用 ONNXRuntime 加载 ONNX 模型时出错
- python-3.x - USB 串行数据、网络、数据库和 GUI,我应该在 Python 中进行多处理吗?
- optaplanner - Optaplanner 默认情况下会重复 PlanningVariable 范围内的值