在 UI5 中使用 oData 模型的读取功能

Using read function of oData model in UI5

我正在编写一个使用给定 OData 服务的 UI5 应用程序。现在我想获取具有给定帐号的帐户名称并将其显示在 table 中。因为我只能通过 /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; }

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

提前致谢!

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

我的意思是,如果你的 table 包含一个 Accounts 数组,并且每个 Account 条目都有一个相关的 AccountInfo,你可以只填写你的 table 与以下内容:

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

然后您直接在 table 中绑定字段,无需格式化程序:

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