有没有一种优雅的方法可以从Openui5中的OdataV4模型中获取JSON数据?

时间:2016-11-17 08:16:49

标签: json sapui5 odata-v4

(openui5版本1.42)

您好,

我有一个项目列表,其数据由odatav4模型提供(sap.ui.model.odata.v4.ODataModel)

当我选择一个Item时,我将它绑定到一个带有自己的控制器的详细视图。

现在我想从odata模型中获取数据。 此解决方案不起作用,因为odata v4模型不支持read方法: Converting ODataModel into JSON Model

有没有办法将所选条目的数据作为json(模型或直接作为数据)?

我能得到的是来自我的控制器中的上下文的属性:

this.getView().getBindingContext("ams").getProperty("Ident)

返回1。我所选条目的标识符。

2 个答案:

答案 0 :(得分:2)

如果在绑定上下文中调用方法getObject,则应将实体作为json。

this.getView().getBindingContext("ams").getObject()

答案 1 :(得分:1)

您可以使用Context.getObject。这提供了上下文指向的完整对象。但是1.42中有一个错误;结果已包装,您必须通过.value[0]访问它。此错误已在1.44.7中修复。请参阅release notes

在1.42及以后的所有版本中都有效的解决方案是利用getObject也可以传递部分对象的事实。提供一个空的sPath参数:

this.getView().getBindingContext("ams").getObject("")