Получение ошибки «oModel.read is not function» - PullRequest
0 голосов
/ 03 сентября 2018

При выполнении операции чтения на V4 ODatamodel я получаю сообщение об ошибке

oModel.read не является функцией

Код

Model declaration

Error

Error screenshot

Пожалуйста, дайте мне знать, как исправить, если я сделал что-то не так.

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018
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"
  */
  });
0 голосов
/ 03 сентября 2018

Ожидается эта ошибка.

Метод чтения не существует в oData Model V4.

см. Ниже: чтение не является функцией в V4

Однако вы можете сделать то же самое с oData V2 (рекомендуемый подход для работы с oData, поскольку в V4 все еще отсутствуют некоторые функции)

Ограничения с oData V4

oData V2 против oData V4

Тем не менее, если вам необходимо связать элементы ответа позже с таблицей, вы можете сделать это как:

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"
});
...