收到 "oModel.read is not a function" 错误

Getting "oModel.read is not a function" error

V4 ODatamodel 上执行读取操作时,我收到一条错误消息

oModel.read is not a function

代码

错误

如果我做错了,请告诉我如何改正。

这个错误是预料之中的。

read method does not exist in oData Model V4.

见下文: read is not a function in V4

但是,您可以使用 oData V2 做同样的事情(使用 oData 的推荐方法,因为 V4 仍然缺少一些功能)

Restrictions with oData V4

oData V2 vs oData V4

不过,如果您以后需要用 table 绑定响应项,您可以 这样做:

var oModel = new sap.ui.model.odata.v4.ODataModel({
    groupId: "$auto",
    serviceUrl: "url",
    synchronizationMode: "None",
    operationMode: "Server"
  }),
  oSettings = new sap.ui.model.json.JSONModel({
    bOnlyLarge: false,
    bFilterGermany: false
  });
var oTable = new sap.ui.table.Table({
  columns: [{
    label: "ProductName",
    template: new sap.m.Text({
      text: "{Country}"
    }),
    sortProperty: "ProductName"
  }]
});
oTable.setModel(oModel);

oTable.bindRows({
  path: "/Products"
});

var oModel = new sap.ui.model.odata.v4.ODataModel({
    /* send requests directly. Use $auto for batch request wich will be send automatically on before rendering */
  groupId : "$direct",
    /* I'll just quote the API documentary:
  Controls synchronization between different bindings which refer to the same data for the case data changes in one binding.
  Must be set to 'None' which means bindings are not synchronized at all; all other values are not supported and lead to an error.
  */
  synchronizationMode : "None",
  /*
  Root URL of the service to request data from.
  */
    serviceUrl : "http://services.odata.org/TripPinRESTierService/",
  /*
  optional. Group ID that is used for update requests. If no update group ID is specified, mParameters.groupId is used.:
  updateGroupId : "$direct"
  */
  });