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

时间:2015-06-23 12:00:09

标签: javascript odata sapui5

我正在编写一个消耗给定OData服务的UI5应用程序。现在我想获取具有给定帐号的帐户的名称并在表格中显示它。因为我只能通过/ AccountInfoSet()/ ShortText访问帐户名称,所以我尝试使用格式化程序功能来映射帐号。

在视图中绑定:

Controller中的Formatter函数:

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; }

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

提前致谢!

1 个答案:

答案 0 :(得分:0)

不确定您的数据模型是否设置如此,但是展开您的表格集是否也可以加载相关的AccountInfoSet

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

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

然后直接绑定表中的字段,而不使用格式化程序:

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