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