使用工厂函数的聚合绑定中的多个控件

Multiple controls in the aggregation binding using factory function

我想在 VBox 控件的 items 聚合中包含多个控件。

var title = new sap.m.Title({text: "Name"});
var nameInput = new sap.m.Input();
var nameText = new sap.m.Text();

var layout = new sap.m.VBox({
    items: {
        path: "/",
        factory: function(sId, oContext) {
            var type = oContext.getProperty("type");
            if (type) {
                 return [title, nameInput];
            } else {
                 return [title, nameText];
            }
        }
    }
});

type 属性和 title 和 [=19= 中有内容时,我想在 VBox 中添加 titlenameInput ] 当 type 为空或未定义时。但它 return 出错了:

Uncaught TypeError: o.setBindingContext is not a function

我不确定为什么会这样。当我们 return 在工厂函数中只使用单个控件而不是数组时,它会起作用。有谁知道如何使用工厂 return 聚合绑定中的多个控件?

工厂函数应该return只是一个控件实例,而不是数组。当我需要在一个 VBox 项目中使用多个控件时,我可能会使用一个单独的 xml 片段(例如另一个 VBox 或 HBox),其中又包含许多适当的控件。