Using read function of oData model in UI5



我正在编写一个UI5应用程序,该应用程序使用给定的OData服务。现在,我想获得具有给定帐号的帐户的名称,并将其显示在表中。由于我只能通过/AccountInfoSet()/ShortText访问帐户名称,我尝试使用格式化程序函数来映射帐号。

视图中的绑定:

控制器中的格式化程序功能:

numToNameFormatter : function(sNum){ var text = this.getView().getModel().read("/AccountInfoSet('" + sNum + "')", null, null, true, function(oData, oResponse){ return JSON.stringify(oData); }, function(){ alert("Read failed"); }); return text; }

这应该将请求的对象作为字符串返回。数据请求成功,正如我通过警报验证的那样。问题是,我无法从回调中获取数据,因为它是异步的。如何获取数据。

提前感谢!

不确定您的数据模型是否是这样设置的,但是否可以扩展您的表集以加载相关的AccountInfoSet

我的意思是,例如,如果您的表包含一个Accounts数组,并且每个Account条目都有一个相关的AccountInfo,那么您可以用以下内容填充您的表:

http://your.service/Accounts/?$expand=AccountInfo

然后直接绑定表中的字段,无需格式化程序:

<TextField value="{AccountInfo/0/ShortText}">

最新更新