Binding 如何在SAPUI5中将模型绑定到表

Binding 如何在SAPUI5中将模型绑定到表,binding,sapui5,sap-fiori,Binding,Sapui5,Sap Fiori,我正在尝试将oData服务中的entitySet绑定到列表。 我的代码如下所示: var list = oView.byId("list"); var requestModel = new sap.ui.model.json.JSONModel() .attachRequestCompleted(function(data) { var model = new sap.ui.model.json.JSONModel(); model.setData

我正在尝试将oData服务中的entitySet绑定到列表。 我的代码如下所示:

var list = oView.byId("list");
    var requestModel = new sap.ui.model.json.JSONModel()
    .attachRequestCompleted(function(data) {
        var model = new sap.ui.model.json.JSONModel();
        model.setData(data.getSource());
        list.setModel(model);
    });

requestModel.loadData("/sap/opu/odata/sap/XXX_SRV/detailSet?$filter=XXX eq 'XXX'");
<Table class="sapUiResponsiveMargin" items="{/dummy}" id="table" width="auto">
我的服务按预期返回一个细节对象数组,但我似乎找不到将它们绑定到列表的方法。
感谢您开始使用ODataModel试试这个。一般来说,这很容易

  • 实例化模型,如指南中所述
  • 将模型设置为视图
  • 使用XML视图中的绑定语法触发加载实体的请求

我终于找到了一个解决方案:

首先,我必须在列表中创建一个虚拟路径,如下所示:

var list = oView.byId("list");
    var requestModel = new sap.ui.model.json.JSONModel()
    .attachRequestCompleted(function(data) {
        var model = new sap.ui.model.json.JSONModel();
        model.setData(data.getSource());
        list.setModel(model);
    });

requestModel.loadData("/sap/opu/odata/sap/XXX_SRV/detailSet?$filter=XXX eq 'XXX'");
<Table class="sapUiResponsiveMargin" items="{/dummy}" id="table" width="auto">

如果有OData服务,为什么要使用JSONModel?请改用ODataModel。因为ODataModel会自动插入$metadata标记,并且在需要实体SetCorry时不能使用$metadata,这是胡说八道。ODataModel已开发用于访问ODataService。在某些情况下,标准实现可能不适合,但一般来说,它应该足够了。这并不是真正的“空项”,但
{}
仅仅意味着“绑定到未命名的相对路径”。它可能会工作,但如果表项聚合已经是相对的,则可能会遇到问题。例如,最好绑定到虚拟路径
items=“{/dummy}”