我正在使用SAPUI5,我有一个MasterPage和一个DetailPage,在MasterPage中我有一个List,当我在List中选择de Item时,信息显示在DetailPage中。
在DetailPage中我有一个PositiveAction,当我按下PositiveAction时,我需要获取DetailPage的数据,但我不知道该怎么做。
我的项目代码按
onPoSelect : function(oEvent) {
var oListItem = oEvent.getParameter('listItem');
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
oRouter.navTo("DetailPanel", {
invoicePath: oListItem.getBindingContext("solped").getPath().substr(1)
});
},
我在DetailPanel中的代码
onInit: function (){
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
oRouter.getRoute("DetailPanel").attachPatternMatched(this._onObjectMatched, this);
},
_onObjectMatched: function (oEvent) {
this.getView().bindElement({
path: "/" + oEvent.getParameter("arguments").invoicePath,
model: "solped"
});
},
“oEvent.getParameter(”arguments“)。invoice invoice,”
返回此内容。
发票(CustomerName ='Alfreds Futterkiste',折扣= 0f,订单ID = 10702,产品ID = 3,产品名称='茴香糖浆',数量= 6,销售员='玛格丽特孔雀',ShipperName ='快速快递',UnitPrice = 10.0000M)
我有信息,但它是一个字符串,如何在对象中转换此字符串?或者,我还能如何访问视图中的信息?
视图的图像
答案 0 :(得分:1)
通过将绑定路径作为参数传递给基础数据模型的getProperty函数,可以将所有属性作为对象获取。
var oModel = this.getView().getModel("solped");
var oProps = oModel.getProperty(oListItem.getBindingContext("solped").getPath());
然后,您可以访问这些属性
oProps.CustomerName;
oProps.OrderID;
...
答案 1 :(得分:1)
我假设您已经可以在详细信息视图中看到详细信息的数据。 您通过bindElement函数将数据绑定到视图,并在您要查找的代码中检索它们" getBindingContext"功能
在Detail控制器中创建以下功能:
// this must be connected to Button -> <Button press="onPositivePress">
onPositivePress: function(oEvent) {
var oBindingContext = this.getView().getBindingContext("solped");
// this is the path you can use to call odata service
var sPath = oBindingContext.getPath();
// this is data you are looking for
var oReqData = oBindingContext.getObject();
}
答案 2 :(得分:0)
用于将字符串转换为对象,请参见下面的示例。
var a =“how r u”;
var b = [a];
你将获得b中的对象。