SAPUI5 - 使用导航属性/数组的Formatter标签

时间:2017-01-11 19:08:54

标签: binding sapui5

所以,我正在SAPUI5中构建一个应用程序,我无法解决问题。

我的前端:JS,SAPUI5,FIORI和我的后端:HANA,HANAXS。

这里发生了什么:

我的后端服务中有以下结构:

http://prntscr.com/dudto4

我在我看来有以下代码:

<Table>
....
<items>
<ColumnListItem
    type="Navigation">
    <cells>
        <Label text = "{START_TIME}" design="Bold"/>
        <Label text = "{END_TIME}" design="Standard"/>
        <ObjectIdentifier title="{DESCRIPTION}" />
        <Label text="{ItsSpeakers}" design="Bold"/>
    </cells>
</ColumnListItem>
</items>
</Table>

我可以检索所有字段(START_TIME,END_TIME,DESCRIPTION),但是可以检索ItsSpeakers,它是下表中的导航属性:

http://prntscr.com/dudvw3

从上图中检索属性(例如,NAME)的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

如果您的ItsSpeakers是对单个实体的引用,您可以按如下方式绑定

<Label text="{ItsSpeakers/NAME}" design="Bold"/>

如果是数组,您可以确定所需的记录并通过格式化程序函数返回值

<Label text="{path:'ItsSpeakers', formatter: '.getItsSpeakersName'}" design="Bold"/>

...以及控制器上的相应方法......

getItsSpeakersName: function(aItsSpeakers) {
   // For example to return the NAME property of the first record
   return this.getView().getModel().getProperty("/"+aItsSpeakers[0]+"/NAME");
}

要使其中任何一个起作用,需要在表项目绑定中扩展ItsSpeakers,例如......

<Table items="{ path: 'EntitySet', parameters: { expand: 'ItsSpeakers' } }">