所以,我正在SAPUI5中构建一个应用程序,我无法解决问题。
我的前端:JS,SAPUI5,FIORI和我的后端:HANA,HANAXS。
这里发生了什么:
我的后端服务中有以下结构:
我在我看来有以下代码:
<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,它是下表中的导航属性:
从上图中检索属性(例如,NAME)的最佳方法是什么?
答案 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' } }">