我正在编写一个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}">