如何获取视图的数据

时间:2017-01-31 22:58:18

标签: sapui5

我正在使用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)

我有信息,但它是一个字符串,如何在对象中转换此字符串?或者,我还能如何访问视图中的信息?

视图的图像

enter image description here

3 个答案:

答案 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中的对象。