SAPUI5 - 数据绑定

时间:2016-02-04 16:10:07

标签: sapui5

任何人都知道是否可能,以及如何绑定像“ObjectHeader”这样的控件,其中属性“Title”从一个实体绑定,并且此控件的聚合如ObjectStatus从另一个实体绑定。

以下是代码:

bindObjectHeader: function() {

  var objectHeader = this.getView().byId("objectHeader");
  objectHeader.bindElement({
				path: "/Products" 
  });

  objectHeader.bindProperty("title", "Products/ToCategory/Description");
},

嗯,实体产品 CategoryId 属性,而 ToCategory 是实体产品之间的关联和实体类别 ...我想要给定类别和产品的对应描述

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您的实体集包含多个实体,如下面的JSON对象中所述:

var oJson={"rootNode":{
            "node1":[
                     {"name":"myName"}
                    ],
            "node2":[
                     {"age":"15"}
                    ],
            "node3":[
                    {"subnode":"value1"},
                    {"subnode":"value2"},
                    ]
    }};

您可以创建一个JSON模型并将此数据设置到模型中,然后将JSON模型设置在核心,如下所述:

var oModel=new sap.ui.model.json.JSONModel();
    oModel.setData(oJson);
    sap.ui.getCore().setModel(oModel,"myModel");

您现在可以使用一个实体和聚合(状态)使用另一个实体绑定标题,如下所述:

var objectHeader=sap.ui.getCore().byId("objectheader");
      var objectStatus=new sap.m.ObjectStatus("objectstatus",{
          title:"{myModel>subnode}"
      });
      objectHeader.bindProperty("title", "myModel>/rootNode/node1/0/name");
      objectHeader.bindAggregation("statuses","myModel>/rootNode/node3",objectStatus);

希望这个答案可以帮到你。