【问题标题】:return array of controls as aggregation in sap ui5在 sap ui5 中返回控件数组作为聚合
【发布时间】:2019-10-11 03:33:07
【问题描述】:

我有一个用例,我想在FormElement 中添加两个sap.m.Input 控件。但是我有某些条件可以更改这两个Input 控件。正如我在许多示例中看​​到的,.bindAggregation 方法只返回一个控件。我可以让它返回控件数组吗?

var oInput1 = new sap.m.Input();
var oInput2 = new sap.m.Input();
var oInput3 = new sap.m.Input();

var oFormElement = new sap.ui.layout.form.FormElement();
oFormElement.bindAggregation("fields", "properties", function(sId, oContext){
    var value = oContext.getProperty("value");
    if (value > 5) {
        return [oInput1, oInput3];
    } else {
        return [oInput1, oInput2];
    }
});

我已经编写了这个示例,但它什么也没显示。如何返回.bindAggregation 中的控件数组。我试图在字段中使用HBox,但它有导致布局问题的风险。有人可以帮忙吗?

提前致谢。

【问题讨论】:

标签: javascript forms sapui5 aggregation


【解决方案1】:

您不能在工厂函数中返回多个元素。将为每个上下文调用工厂函数,并且必须只返回一个元素。

如果您无法修改服务以为每个输入返回一个上下文,您可以考虑使用 JavaScript 构建表单,而不是使用数据绑定。这意味着

  1. 向您的服务请求properties
  2. 循环遍历每个属性并使用FormElement.addField 方法将输入添加到表单元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    相关资源
    最近更新 更多