Sapui5:我如何使用manifest.json动态检索oData

时间:2017-10-08 11:23:03

标签: odata sapui5

我已配置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;
    }
}); 

1 个答案:

答案 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;
            }
        });