我已配置manifest.json
& neo-app.json
"dataSources": {
,"news": {
"uri": "/destinations/int_news/sap/opu/odata/sap/XKDNK/",
"type": "OData",
"settings": {
"odataVersion": "2.0"
}
}
},
"models": {
"news": {
"dataSource": "news"
}
}
在我的控制器中获取oData:
var oModel = this.getModel("news");
oModel.read("/planSet", {
success: function(data){
debugger;
}
});
但它提取的所有数据超过1000行, 我需要在查询中添加一个过滤器。
我设法仅在直接网址上添加过滤器:
$filter=SystemId eq \"SKYPE\"
但是如何在不获取所有数据的情况下动态地在JavaScript中添加过滤器? 例如:
var oModel = this.getModel("news");
oModel.read("/planSet?$filter" + <MY_CUSTOM_DATA_FILTER>, {
success: function(data){
debugger;
}
});
答案 0 :(得分:1)
尝试创建一个过滤器对象,在该对象中传递过滤器参数,并将此过滤器对象用作读取调用中的参数。如下所示
var oModel = this.getModel("news"),
sfilterVal = "SKYPE",
aFilters = [];
if (sfilterVal) {
aFilters.push(new sap.ui.model.Filter("SystemId", sap.ui.model.FilterOperator.EQ, sfilterVal));
}
oModel.read("/planSet", {
filters: aFilters,
success: function(data){
debugger;
}
});