Odata 如何在UI5应用程序中使用oModel.read查看单个条目
我想在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
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
}
});