持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天点击查看活动详情
SAP UI5 composite binding 的使用场景
SAP UI5 应用界面上一个控件的数据源,可能来自模型的多个字段。
例如,文本字段的 value 属性可以绑定到模型中的属性 firstName 和属性 lastName。应用程序可以在格式化程序函数中访问这些值,并可以决定如何处理或组合它们。如果未指定格式化函数,则默认情况下将这些值连接在一起。SAP UI5 应用开发人员可以使用 useRawValues 属性来指定格式化程序函数中的参数值是否根据属性的类型进行格式化。
多个属性绑定存储在 CompositeBinding 中,可以通过调用 getBindings 函数进行访问。可以访问复合绑定,例如,通过使用控件的 getBinding('value') 函数。复合绑定没有路径、模型、上下文和类型,因为它包含多个包含必要信息的属性绑定。例如,复合绑定可以存储两个属性绑定,它们属于不同的模型并具有不同的类型。
如果开发人员指定了格式化程序函数,它也可以在复合绑定中使用。
有几个选项可以为控件创建多个绑定。语法与普通的单一绑定声明非常相似。
每个绑定都是由指定的部分和分配的信息创建的。部件必须包含模型中属性的路径,并且可能包含绑定的附加信息,例如类型。
在构造函数里为 SAP UI5 控件指定 composite binding
实例代码如下:
oTxt = new sap.m.Input({
value: {
parts: [
{path: "/firstName", type: new sap.ui.model.type.String()},
{path: "/lastName"},
{path: "myModel2>/amount", type: new sap.ui.model.type.Float()} // path to property in another model
]
}
});
上图同时为 Input 控件指定了三个绑定数据源,连同其数据类型:
调用 SAP UI5 控件实例的 bindValue 方法
示例代码如下:
oTxt.bindValue({
parts: [
{path: "/firstName", type: new sap.ui.model.type.String()},
{path: "/lastName"}
]
});
SAP UI5 控件的 Composite Binding 信息,通过 bindValue 的输入参数,传入控件实例: