尝试将项目绑定到sap.ui.ComboBox
(https://sapui5.netweaver.ondemand.com/sdk/#docs/api/symbols/sap.ui.commons.ComboBox.html)组件时遇到问题。
目前,在ComboBox组件上绑定项目的过程如下:
var itemTemplate = new sap.ui.core.ListItem(); // creating a ListItem object
itemTemplate .bindProperty("text", "........."); // bind for the "text" property a certain path from the model
var comboBox = new sap.ui.commons.ComboBox({}); // create the ComboBox
comboBox .bindItems("........",itemTemplate); // bind the items from a certain path, and provide as a template for the list the previously created one
除了在控制台上记录以下异常这一事实外,一切都按预期工作: " 共享模板必须使用templateShareable标记:绑定信息中为true - "
虽然这似乎具有启发性,但我仍然无法在绑定过程中找到" templateShareable
"属性设置为" true
"。
有没有其他人遇到过这个问题?绑定组合框的项目时我做错了吗?
由于
答案 0 :(得分:1)
将为聚合中的每个项目克隆模板Element
。因此,在您的示例中,您将获得数据源中每个项目的itemTemplate
ListItem的一个克隆。
共享模板是许多控件将使用的模板对象。例如,如果您将ComboBox用作表中的模板,则将为每行克隆ComboBox。如果您的itemTemplate
被标记为templateShareable:true
,则不会克隆模板 - 所有ComboBox克隆都将使用相同的itemTemplate
对象作为其项目的模板。
您可以将templateShareable指定为绑定参数:
comboBox.bindItems({
path: "/items",
template: itemTemplate,
templateShareable:true
});
如果您没有指定templateShareable,则会假定为,但会收到警告。
请参阅jsbin:如果您对templateShareable:true
行发表评论,您将再次在控制台中收到警告。