【问题标题】:SAPUI5 - Data BindingSAPUI5 - 数据绑定
【发布时间】:2016-02-04 16:10:07
【问题描述】:

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

代码如下:

bindObjectHeader: function() {

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

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

嗯,实体 Products 有一个 CategoryId 属性,而 ToCategory 是实体 Products 之间的关联和实体Categories...我想要给定Category和Product的对应Description

谢谢!

【问题讨论】:

标签: odata sapui5


【解决方案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);

希望这个答案对你有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-07
    • 1970-01-01
    相关资源
    最近更新 更多