我想将 sap.m.ComboBox 控件添加到我的 UI 中。我想要来自 Member 标记的属性 Name 的值。我可以使用以下代码来做到这一点:
new sap.m.ComboBox({
items : {
templateShareable : true,
path : "metadata>/edmx:DataServices/edm:Schema/edm:EnumType/0/edm:Member",
template : new sap.ui.core.ListItem({
text: "{metadata>@Name}"
})
}
})
但是,我宁愿选择通过调用其索引 (edm:EnumType/0/) 来选择 EnumType hard通过其属性名称选择它。例如。像这样的东西会很好:
"metadata>/edmx:DataServices/edm:Schema/edm:EnumType(Name=RoleCategory)/edm:Member"
有人知道怎么做吗?任何想法都会受到高度赞赏。
最佳答案
路径语法中没有这样的东西。你可以在OpenUI5 code中看到该路径仅支持
- 属性
@
text()
- 按标签名称排列的元素
- 数组索引。
您不能使用元素绑定(bind)来过滤,因为元素绑定(bind)不支持过滤和排序。
但是,您可以附加到模型 requestCompleted
或 metadataLoaded
事件并更新绑定(bind)路径或将数据复制到单独的模型。
如果您想要它脏,您可以使用容器控件,将其绑定(bind)到/edmx:DataServices/edm:Schema/edm:EnumType 并使用 ComboBox
作为模板,并应用适当的过滤器。然后,您必须在组合框中使用相对路径。 :)
关于javascript - SAPUI5 通过属性名称从 XML 模型进行绑定(bind)聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37343421/