javascript - SAPUI5 通过属性名称从 XML 模型进行绑定(bind)聚合

标签 javascript xml binding model sapui5

我确实有一个 XML 模型,如下所示: enter image description here

我想将 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)不支持过滤和排序。

但是,您可以附加到模型 requestCompletedmetadataLoaded 事件并更新绑定(bind)路径或将数据复制到单独的模型。

如果您想要它脏,您可以使用容器控件,将其绑定(bind)到/edmx:DataServices/edm:Schema/edm:EnumType 并使用 ComboBox 作为模板,并应用适当的过滤器。然后,您必须在组合框中使用相对路径。 :)

关于javascript - SAPUI5 通过属性名称从 XML 模型进行绑定(bind)聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37343421/

相关文章:

javascript - 将产品游览库与 VueJS 结合使用

java - 使用 JAXB 获取子节点中的 XML 数据作为字符串

javascript - 使用 jQuery 按类选择子 div

javascript - 防止 select2 的标签文本中出现空格

java - 你如何在 Java 中保存 DOM 文档?

xml - 需要自动化脚本以在 XML 文件中搜索并将 HEX 替换为 DEC

c# - WPF组合框怪异问题

jsf - 为什么我能够绑定(bind) <f :actionListener> to an arbitrary method if it's not supported by JSF?

c# - 如何将一个对象的成员绑定(bind)到数据网格

JavaScript 执行顺序 - 当 this() 完成时运行 this(),然后运行 ​​that()?