我有一个用例,我想在sap.m.Input
中添加两个FormElement
控件。但是我在某些条件下可以更改这两个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
,但是有引起布局问题的风险。有人可以帮忙吗?
谢谢。
答案 0 :(得分:0)
您不能在工厂函数中返回多个元素。将为每个上下文调用factory函数,并且必须恰好返回一个元素。
如果您不能修改服务以为每个输入返回一个上下文,则可以考虑使用JavaScript构造表单,而不是使用数据绑定。这意味着
properties
FormElement.addField
方法将输入添加到表单元素。