SAPUI5:XMLModel的绑定属性

时间:2017-11-16 23:18:31

标签: data-binding sapui5

这是如何在OpenUI 5 / SAPUI5中完成的?
给出以下

<MainNavigation>
    <Link>
      <property name="Name">Clinical Overview</property>
      <property name="command">showTeachingPoints</property>
      <property name="autoSelect">true</property>
    </Link>
    <Link>
      <property name="command">showDevices</property>
      <property name="Name">Equipment</property>
    </Link>
</MainNavigation>

尝试填写以下text属性:

<tnt:SideNavigation expanded="true" itemSelect="onItemSelect">
  <tnt:NavigationList id="sideMenu" items="{/MainNavigation/Link}">
    <tnt:NavigationListItem text="{property/[@name='Name']/text()}" />
  </tnt:NavigationList>
</tnt:SideNavigation>

目标应该是显示每个属性的名称(所以临床概述,设备等......)但查询不起作用。

我也试过了:

{property/[@name='Name']/text()}
{property/[name='Name']/text()}
{property/['@name='Name'']/text()}
{property[@name='Name']/text()}

唯一可行的方法是

{property}

然而,这只会显示属性节点集合中的第一个内容。我想知道如何到达特定节点,因为我想将其他节点用于不同目的(默认选择,函数回调名称等等)

编辑澄清:
该列表应包含:

Clinical Overview
Equipment

使用{property/@name}列表将是:

Name
command

当然这不是我正在寻找的但是它与{property}有着同样的问题,因为当我想要第二个或第三个时,它只返回<Link>下的第一个项目。

此xpath查询适用于其他地方/UI/MainNavigation/Link/property[@name='Name']/text(),我只想将其转换为OpenUI。

1 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

<tnt:SideNavigation expanded="true" itemSelect="onItemSelect">
  <tnt:NavigationList id="sideMenu" items="{/MainNavigation/Link}">
    <tnt:NavigationListItem text="{property/@name}" />
  </tnt:NavigationList>
</tnt:SideNavigation>

有关Binding Path Syntax for XML Models的文档中的详细信息。

  

对于属性,使用&#34; @&#34;的特殊选择器字符存在和&#34; text()&#34;可用于引用元素的内容文本。通过使用多元素的路径引用列表。

BR Chris