获取列表的第一项的值oData v4,SapUi5或OpenUi5

时间:2017-10-11 09:46:09

标签: odata sapui5

当前Ui5版本使用1.46.12

使用:sap.ui.model.odata.v4.ODataModel

需要什么?

是从oData(v4)响应中获取列表数组的第一项的值“EventDate”。

查看代码

<layout:VerticalLayout binding="{/Logs}">
    <Text text="Latest update"/>
    <Text id="LastUpdatedSynchronizeDateStringText"
          text="{EventDate}"/>
</layout> 

批量请求响应(oData v4)

{
 "@odata.context":"http://localhost/odata/$metadata#Logs","value":[
    {
      "LogId":12512,"ErrText":"end","EventDate":"2017-05-11T07:10:44Z","Location":"OEN","Result":0
    }
  ]
}

试过&amp;失败:

<Text id="Last..." text="{EventDate}"/>
<Text id="Last..." text="{0/EventDate}"/>
<Text id="Last..." text="{0.EventDate}"/>

错误消息是“无法向下钻取”

1 个答案:

答案 0 :(得分:0)

设置&#34; 绑定&#34;属性到集合路径是没有意义的,因为它会将绑定上下文设置为由于数组(集合)性质而无法访问的VerticalLayout控件。如果它是指向特定对象(带有键)的直接链接,那么它就可以工作。

在您的情况下,您可以对&#39; / Logs&#39;执行请求。通过编码和成功收集&#34;方法&#34;读&#34;函数将VerticalLayout绑定到检索到的对象,然后&#39; text =&#34; {EventData}&#34;&#39;会工作的。

粗略步骤:

  1. odatamodel.read
  2. 处理成功方法
  3. via odatamodel。 createKey 方法构造第一个对象的键
  4. call&#34; verticalLayout。 bindObject &#34;在
  5. 之前传递构造的键
  6. 由于父控件的上下文更改,Text控件将自动获得更新,您将看到日期