Odata 将元素绑定到控件SAPUI5
我试图在XML视图上显示Odata模型检索到的一些数据。 在Component.js中,我创建了一个带有服务Url的模型,它照常工作Odata 将元素绑定到控件SAPUI5,odata,sapui5,Odata,Sapui5,我试图在XML视图上显示Odata模型检索到的一些数据。 在Component.js中,我创建了一个带有服务Url的模型,它照常工作 var oDataModel = new sap.ui.model.odata.v2.ODataModel("http://server:port/sap/opu/odata/SAP/ZWYMB_SRV", { user:"abapleader", password: "TH123456789a@",
var oDataModel = new sap.ui.model.odata.v2.ODataModel("http://server:port/sap/opu/odata/SAP/ZWYMB_SRV", {
user:"abapleader",
password: "TH123456789a@",
headers: {
"sap-client": 300
},
useBatch:false
});
this.setModel(oDataModel, "oDataModel");
到目前为止,我已经使用model.read()
函数将数据获取到master
现在我需要显示详细视图。我的onInit
事件代码如下:
this.router.getRoute("zwm01detail").attachPatternMatched(this._onObjectMatched.bind(this));
},
_onObjectMatched: function(oEvent) {
var that = this;
var MaWorkDoc = oEvent.getParameter("arguments").MaWorkDoc;
this.getModel("oDataModel").metadataLoaded().then(function() {
var sPath = that.getModel("oDataModel").createKey("/WorkDocList", {
MaWorkDoc: MaWorkDoc,
Pernr: "0001"
});
console.log(sPath);
that.getView().bindElement({
path:sPath
});
});
我使用console.log(sPath)
:/WorkDocList(MaWorkDoc='1110000001',Pernr='0001')打印出的sPath
,我认为是正确的。我还使用此路径实现并测试了后端,基本上一切正常。但是我不知道为什么我不能在视图上显示数据
Detail.view.xml:
<Text text="{/MaWorkDoc}" maxLines="0"/>
有什么建议吗?我认为详细绑定代码不应该在.metadataLoaded处理程序中。相反,它应该直接位于对象匹配的内部 我是说像这样
_onObjectMatched: function(oEvent) {
var that = this;
var MaWorkDoc = oEvent.getParameter("arguments").MaWorkDoc;
var sPath = that.getModel("oDataModel").createKey("/WorkDocList", {
MaWorkDoc: MaWorkDoc,
Pernr: "0001"
});
console.log(sPath);
that.getView().bindElement({
path:sPath
});
}
因为您已经为模型指定了一个名称,所以需要在绑定中使用该名称。i、 e.
所以我一直在研究文档,发现有一个模型
参数可以帮助我们
更具体地说,我在view.bindElement
中添加了declaremodel
,如下所示:
that.getView().bindElement({
path:sPath,
//** oDataModel = name of the model
model: "oDataModel"
});
如果有更好的解决办法,我很高兴知道。谢谢 先生,我已经尝试添加oDataModel>,但仍然不起作用。请您更详细一点,先生?如何在代码中实现_onObjectMatched事件?抱歉,如果这让你感到不舒服,但我是全新的。更新了答案