我一直在为列表开发过滤器。 我的列表在项目中显示一个图标,具体取决于实际数据记录中的两个条目。
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";
}
}
})
现在我将为此信息实施过滤器:
我的问题是过滤器只接受一个路径元素。
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:我知道我的语法不是最好的;)
答案 0 :(得分:0)
您可以组合多个依赖于不同路径的过滤器。
var oDateFilter = new sap.ui.model.Filter({
path : "date",
test : function(sDate) {
if(sDate === "31.12.9999"){
return true;
}
return false;
}
});
上面的代码创建了一个使用" date"你的模特的财产。
var oInventoryFilter = new sap.ui.model.Filter({
path : "inventory",
test : function(bInventory) {
if(bInventory !== true){
return false;
}
return true;
}
});
上面的代码使用"库存"创建了一个过滤器。属性。现在,我们通过以下代码组合它:
var oCombinedFilter = new sap.ui.model.Filter({
filters: [oDateFilter, oInventoryFilter],
and: true
});
对于将inventory属性设置为true的所有元素,此过滤器返回true(确保参数是布尔值!)并且日期设置为" 31.12.9999"。
有关详细信息,请参阅sap.ui.model.Filter。