首页 > 解决方案 > ComboBox 值未显示在 XML 视图中

问题描述

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

var oDonorTable = new ODataModel(sServiceUrl/*, ...*/); // ODataModel required from "sap/ui/model/odata/v2/ODataModel"
this.setModel(oDonorTable, "donorList"); 

onInit我的视图控制器中,我从后端读取值并将其设置为 JSONModel:

var oDnrDoc = this.getOwnerComponent().getModel();
oDnrDoc.read("/DonorDocs", {
    success: function(oData) {
        var oDonorDocList =  new JSONModel(); // JSONModel required from "sap/ui/model/json/JSONModel"
        oDonorDocList.setData(oData);
        this.getView().setModel(oDonorDocList, "donorList");
    }.bind(this),
    // ...
});

在我的 XML 视图中,我将 oData 值绑定到 XML 视图中的 ComboBox:

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

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

空下拉显示(九条记录)

我能感觉到一些绑定问题......花括号中的动态变量是否会导致问题?有语法问题吗?

标签: sapui5

解决方案


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

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


推荐阅读