Sapui5 是否可以将两个模型绑定到一个控件?
我需要在我的标准图中显示两个数字。数据源是一个soapweb服务,我必须使用不同的参数调用它两次才能获得这两个数字。有没有办法用这两个数字填充瓷砖?我试着为每个对web服务的ajax调用创建一个XMLModel,然后从响应中将控件的属性绑定到节点,但我只是得到了相同的结果 下面是我在控制器中的onInit方法Sapui5 是否可以将两个模型绑定到一个控件?,sapui5,Sapui5,我需要在我的标准图中显示两个数字。数据源是一个soapweb服务,我必须使用不同的参数调用它两次才能获得这两个数字。有没有办法用这两个数字填充瓷砖?我试着为每个对web服务的ajax调用创建一个XMLModel,然后从响应中将控件的属性绑定到节点,但我只是得到了相同的结果 下面是我在控制器中的onInit方法 onInit: function () { // callback from ajax request SOAPRequester.getMessageOv
onInit: function () {
// callback from ajax request
SOAPRequester.getMessageOverview(function (data) {
var oModel = new sap.ui.model.xml.XMLModel();
oModel.setData(data);
var oStandardTile = sap.ui.getCore().byId("__xmlview0--messageOverviewTile");
if (oStandardTile !== undefined) {
oStandardTile.setModel(oModel, "overview");
oStandardTile.bindProperty("number", {
path: "/SOAP-ENV:Body/rpl:getMessageListResponse/Response/rn5:number",
model: "overview"
});
}
});
//callback from the second ajax call
SOAPRequester.getErrorMessages(function (callbackData) {
var oModel = new sap.ui.model.xml.XMLModel();
oModel.setData(callbackData);
var oStandardTile = sap.ui.getCore().byId("__xmlview0--messageOverviewTile");
if (oStandardTile !== undefined) {
oStandardTile.setModel(oModel, "overview");
oStandardTile.bindProperty("infoState", "Error");
oStandardTile.bindProperty("info", {
path: "/SOAP-ENV:Body/rpl:getMessageListResponse/Response/rn5:number",
model: "overview"
});
}
});
},
是的。您使用同一型号名称两次,因此第一个型号名称不再可见。只需使用不同的型号名称,即“概述”和“概述2”或您喜欢的名称:
onInit: function () {
// callback from ajax request
SOAPRequester.getMessageOverview(function (data) {
var oModel = new sap.ui.model.xml.XMLModel();
oModel.setData(data);
var oStandardTile = sap.ui.getCore().byId("__xmlview0--messageOverviewTile");
if (oStandardTile !== undefined) {
oStandardTile.setModel(oModel, "overview");
oStandardTile.bindProperty("number", {
path: "/SOAP-ENV:Body/rpl:getMessageListResponse/Response/rn5:number",
model: "overview"
});
}
});
//callback from the second ajax call
SOAPRequester.getErrorMessages(function (callbackData) {
var oModel = new sap.ui.model.xml.XMLModel();
oModel.setData(callbackData);
var oStandardTile = sap.ui.getCore().byId("__xmlview0--messageOverviewTile");
if (oStandardTile !== undefined) {
oStandardTile.setModel(oModel, "overview2");
oStandardTile.bindProperty("infoState", "Error");
oStandardTile.bindProperty("info", {
path: "/SOAP-ENV:Body/rpl:getMessageListResponse/Response/rn5:number",
model: "overview2"
});
}
});
},
提示:您还可以稍微改进代码,即
- 调用
或者如果您有正确的UI5版本this.getView().byId(“messageOverviewTile”)
而不是this.byId(“messageOverviewTile”)
sap.ui.getCore().byId(“\uu xmlview0--messageOverviewTile”)
- 在视图中为控件进行绑定,然后在
中调用onInit()
和this.getView().setModel(oModel,“概述”)
this.getView().setModel(oModel,“概述2”)
是的,是的。您使用同一型号名称两次,因此第一个型号名称不再可见。只需使用不同的型号名称,即“概述”和“概述2”或您喜欢的名称:
onInit: function () {
// callback from ajax request
SOAPRequester.getMessageOverview(function (data) {
var oModel = new sap.ui.model.xml.XMLModel();
oModel.setData(data);
var oStandardTile = sap.ui.getCore().byId("__xmlview0--messageOverviewTile");
if (oStandardTile !== undefined) {
oStandardTile.setModel(oModel, "overview");
oStandardTile.bindProperty("number", {
path: "/SOAP-ENV:Body/rpl:getMessageListResponse/Response/rn5:number",
model: "overview"
});
}
});
//callback from the second ajax call
SOAPRequester.getErrorMessages(function (callbackData) {
var oModel = new sap.ui.model.xml.XMLModel();
oModel.setData(callbackData);
var oStandardTile = sap.ui.getCore().byId("__xmlview0--messageOverviewTile");
if (oStandardTile !== undefined) {
oStandardTile.setModel(oModel, "overview2");
oStandardTile.bindProperty("infoState", "Error");
oStandardTile.bindProperty("info", {
path: "/SOAP-ENV:Body/rpl:getMessageListResponse/Response/rn5:number",
model: "overview2"
});
}
});
},
提示:您还可以稍微改进代码,即
- 调用
或者如果您有正确的UI5版本this.getView().byId(“messageOverviewTile”)
而不是this.byId(“messageOverviewTile”)
sap.ui.getCore().byId(“\uu xmlview0--messageOverviewTile”)
- 在视图中为控件进行绑定,然后在
中调用onInit()
和this.getView().setModel(oModel,“概述”)
this.getView().setModel(oModel,“概述2”)