如何在UI5应用程序中使用oModel.read查看单个条目

时间:2019-06-19 13:04:30

标签: odata sapui5

我想在UI5应用程序中显示一个带有oModel.read的条目并将其存储在变量中。

我想做的是,选择模型的单个条目并将其存储在变量中: 如果我执行我的代码,则会在浏览器控制台中得到以下内容: https://ibb.co/FmPNSPm

这是我的代码(但不起作用):

import { Component } from '@angular/core';

@Component({
  selector: 'form-field-overview-example',
  templateUrl: 'form-field-overview-example.html',
  styleUrls: ['form-field-overview-example.css'],
})
export class FormFieldOverviewExample {

  mainArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'];

  newArray : any[] = [];

  constructor() {
    this.divideAndJoinArray(3);
  }

  divideAndJoinArray(spliceAt : number){
    while (this.mainArray.length) {
      var str = (this.mainArray.splice(0, spliceAt).join(''));
      console.log(str)
      this.newArray.push(str);
    }
  }
}

我认为此路径var hostPort = ""; var oDataPath = "/.../KOMMI_SERVICE/"; var sServiceUrl= hostPort + oDataPath; var oModel = new sap.ui.model.odata.ODataModel (sServiceUrl, true); var oJsonModel = new sap.ui.model.json.JSONModel(); var text123; oModel.read("/Komm(ZSMATERIALTEXT ='"+text123+")",oEntry,null,false, function(oData, oResponse){ },function(err){ console.log("err"); }); 不正确。

2 个答案:

答案 0 :(得分:1)

您可以尝试使用过滤器。例如:

var sPath = "/Komm";
var oFilter = [
    new Filter("ZSMATERIALTEXT", "EQ", text123)
];

oModel.read(sPath, {
    filters: oFilter,
    success: function (oData, oResponse) {
        // save variable
    },
    error: function (oError) {
        // show error
    }
});

答案 1 :(得分:0)

尝试一下:

我认为您缺少“” ...

oModel.read("/Komm(ZSMATERIALTEXT ='"+text123+"')",oEntry,null,false,
              function(oData, oResponse){

             },function(err){
                console.log("err");
});

oModel.read("/Komm", {
            filters: [ 
              new sap.ui.model.Filter("ZSMATERIALTEXT", sap.ui.model.FilterOperator.EQ, text123)
            ],
            success: function (oData, oResponse) {
                // do some...
            },
            error: function (oError) {
                // error
            }
        });