Sapui5 组合框值不显示在XML视图中

Sapui5 组合框值不显示在XML视图中,sapui5,Sapui5,在我的Component.js文件中,我实例化了我的OData模型,并将其设置为“donorList”: var-odnortable=新的ODataModel(sServiceUrl/*,…*/);//“sap/ui/model/odata/v2/ODataModel”中需要ODataModel this.setModel(不可更改,“donorList”); 在我的视图控制器的onInit中,我从后端读取值并将其设置为JSONModel: var oDnrDoc=this.getOwner

在我的
Component.js
文件中,我实例化了我的OData模型,并将其设置为
“donorList”

var-odnortable=新的ODataModel(sServiceUrl/*,…*/);//“sap/ui/model/odata/v2/ODataModel”中需要ODataModel
this.setModel(不可更改,“donorList”);
在我的视图控制器的
onInit
中,我从后端读取值并将其设置为JSONModel:

var oDnrDoc=this.getOwnerComponent().getModel();
oDnrDoc.read(“/DonorDocs”{
成功:功能(oData){
var odnordoclist=new JSONModel();//从“sap/ui/model/json/JSONModel”中需要JSONModel
齿目表setData(oData);
this.getView().setModel(OrdoDocList,“donorList”);
}.绑定(此),
// ...
});
在我的XML视图中,我将oData值绑定到XML视图中的组合框:


我有九个来自后端OData服务的键值对,用于实体集“DonorDocs”。但是,在XML视图中呈现时,从下拉列表中选择后,我在视图中看不到结果(仅显示空值),尽管combobox下拉列表中填充了九条记录


我能感觉到一些有约束力的问题。。。大括号中的动态变量是否导致问题?是否存在语法问题?

由于您已将模型命名为
donorList
,因此必须在绑定中使用该名称

<ComboBox items="{path: 'donorList>/results'}">
    <c:ListItem key="{donorList>DocCode}" text="{donorList>DocDesc}"/>
</ComboBox> ````


````
在控制器的
onInit
中,我从后端读取值并将其设置为JSONModel[…] 我能感觉到一些有约束力的问题。有语法问题吗

添加模型名(
{donorList>DocCode}
)应该可以解决Dommy的回答中提到的问题,但有一点更值得关注:缺少
ODataModel
的现有功能,但试图用
JSONModel
重新实现它们

使用JSON格式的OData响应可能很容易用
JSONModel
处理数据,但我想强调的是
JSONModel
是一个客户端模型。
它是一个普通的模型实现,不知道服务实现(如OData或FHIR)提出的任何契约

另一方面,
ODataModel
是一个服务器端模型,它是为处理OData标准(V2或V4)的应用程序显式构建的。这会让你失去很多工作。例如,在我们的例子中,只需绑定实体集,而不绑定中间JSONModel:


(源于
项=“{donorList>/DonorDocs}”
)将自动为您格式化并发送请求



在使用简单的JSONModel构建整个应用程序之前,请继续探索UI5可以对OData做些什么。

我在xml视图中错误地引用了下拉列表值。已更正该问题,我现在能够正确显示值。