Odata 如何在UI5应用程序中使用oModel.read查看单个条目

Odata 如何在UI5应用程序中使用oModel.read查看单个条目,odata,sapui5,Odata,Sapui5,我想在UI5应用程序中显示一个带有oModel.read的条目,并将其存储在变量中 我要做的是,选择模型的单个条目并将其存储在变量中: 如果我执行代码,我会在浏览器控制台中获得以下信息: 这是我的代码,但不起作用: var hostPort = ""; var oDataPath = "/.../KOMMI_SERVICE/"; var sServiceUrl= hostPort + oDataPath; var oModel = new sap.ui.model.odata.ODataMo

我想在UI5应用程序中显示一个带有oModel.read的条目,并将其存储在变量中

我要做的是,选择模型的单个条目并将其存储在变量中: 如果我执行代码,我会在浏览器控制台中获得以下信息:

这是我的代码,但不起作用:

var hostPort = "";

var oDataPath = "/.../KOMMI_SERVICE/";
var sServiceUrl= hostPort + oDataPath;
var oModel = new sap.ui.model.odata.ODataModel (sServiceUrl, true);
var oJsonModel = new sap.ui.model.json.JSONModel();
var text123;

oModel.read("/Komm(ZSMATERIALTEXT ='"+text123+")",oEntry,null,false,
              function(oData, oResponse){

             },function(err){
                console.log("err");
});




我认为此路径/KommZSMATERIALTEXT='+text123+不正确。

您可以尝试使用过滤器。例如:

var sPath = "/Komm";
var oFilter = [
    new Filter("ZSMATERIALTEXT", "EQ", text123)
];

oModel.read(sPath, {
    filters: oFilter,
    success: function (oData, oResponse) {
        // save variable
    },
    error: function (oError) {
        // show error
    }
});
试试这个:

我想你错过了一个

oModel.read("/Komm(ZSMATERIALTEXT ='"+text123+"')",oEntry,null,false,
              function(oData, oResponse){

             },function(err){
                console.log("err");
});


console中的结果是oData的console.log?在您的示例中,我只看到console.log中的错误:不,当我在chrome中按开发者视图中的网络选项卡并选择服务entryokey、您的ODataPath变量时,我得到了这个错误。。。在/../KOMMI_SERVICE/中隐藏您正在使用的实际路径,我希望更正。服务的路径正在运行。如果我正在做一个oModel。创建。。。它也在工作,但我想用oModel.read提取一个条目,我猜我的路径访问是错误的。为什么要使用Model.read?SAPUI5框架从视图到不需要任何代码的数据源都具有很好的绑定特性。阅读对我来说总是错的…谢谢你的回答。过滤器是如何工作的?在text123中,我想存储ZSMATERIALTEXT的值。@Eimerman在开头导入sap.ui.model.Filter。例如:sap.ui.define['sap/ui/model/Filter'],function Filter{…}您上面的代码:ZSMATERIALTEXT,EQ,text123->它是否选择了ZSMATERIALTEXT,它是text123的值?mm您可以尝试另一个示例:oModel.read/Komm吗?$Filter=ZSMATERIALTEXT EQ'+text123+',null,[],true,function…当我使用Filter时,我必须在SEGW中定义entityset吗?确切地说,您需要定义entityset
oModel.read("/Komm", {
            filters: [ 
              new sap.ui.model.Filter("ZSMATERIALTEXT", sap.ui.model.FilterOperator.EQ, text123)
            ],
            success: function (oData, oResponse) {
                // do some...
            },
            error: function (oError) {
                // error
            }
        });