如何使用OData模型将两个数据属性直接绑定到一个控件属性中?

Dr.*_*Zhu 5 javascript sapui5

我正在使用OData模型将UI控件绑定到GW服务.在服务元数据中,数据结构中有"FirstName"和"LastName".在UI上,比方说,我正在使用Label控件.

现在问题是如何直接使用OData模型将Label的Text属性绑定到"FullName"字符串(即"FirstName"+"LastName")?如果我使用JSON模型,我可以创建一个局部变量FullName = FirstName + LastName,并将Text属性绑定到FullName.但是我怎么能用OData模型呢?

Nik*_*hev 14

此外,您可以在sap-ui-core.js中启用复杂数据绑定:

<script src="resources/sap-ui-core.js"
        id="sap-ui-bootstrap"
        data-sap-ui-libs="sap.ui.commons,sap.ui.table,sap.ui.ux3"
        data-sap-ui-xx-bindingSyntax="complex"></script>
Run Code Online (Sandbox Code Playgroud)

然后使用这两个属性:

var oLabel = new sap.ui.commons.Label({
        text : "{firstName} {lastName}"
});
Run Code Online (Sandbox Code Playgroud)

  • Qualitue和Nikolay的解决方案都运行良好.对于简单的组合装订,即只需将两个物体放在一起,Nikolay就是简单的解决方案.对于更复杂的绑定,即需要更改数据类型然后绑定,Qualiture值得做. (2认同)

Qua*_*ure 8

您可以使用计算字段进行数据绑定,例如:

var oLabel = new sap.ui.commons.Label()
.bindProperty("text", {
  parts: [
    {path: "/firstName", type: new sap.ui.model.type.String()},
    {path: "/lastName", type: new sap.ui.model.type.String()}
  ],
  formatter: function(firstName, lastName){
    return firstName + " " + lastName;
  }
});
Run Code Online (Sandbox Code Playgroud)