使用工厂函数的聚合绑定中的多个控件
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
中添加 title
和 nameInput
] 当 type
为空或未定义时。但它 return 出错了:
Uncaught TypeError: o.setBindingContext is not a function
我不确定为什么会这样。当我们 return 在工厂函数中只使用单个控件而不是数组时,它会起作用。有谁知道如何使用工厂 return 聚合绑定中的多个控件?
工厂函数应该return只是一个控件实例,而不是数组。当我需要在一个 VBox 项目中使用多个控件时,我可能会使用一个单独的 xml 片段(例如另一个 VBox 或 HBox),其中又包含许多适当的控件。
我想在 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
中添加 title
和 nameInput
] 当 type
为空或未定义时。但它 return 出错了:
Uncaught TypeError: o.setBindingContext is not a function
我不确定为什么会这样。当我们 return 在工厂函数中只使用单个控件而不是数组时,它会起作用。有谁知道如何使用工厂 return 聚合绑定中的多个控件?
工厂函数应该return只是一个控件实例,而不是数组。当我需要在一个 VBox 项目中使用多个控件时,我可能会使用一个单独的 xml 片段(例如另一个 VBox 或 HBox),其中又包含许多适当的控件。