在读取成功处理程序中读取的OData无法正常工作

时间:2019-02-06 14:50:00

标签: sapui5

我是SAPUI5的新手,遇到了问题...

当我使用read函数从OData服务获取值时,我正在尝试使用具有从我获得的值的过滤器来在成功函数中使用另一个read函数一读。

这有可能吗?

到现在为止,看起来好像读取成功,但是它不执行下一次读取。

var filters = new Array();
var first_Filter = new sap.ui.model.Filter({
  path: "userId",
  operator: sap.ui.model.FilterOperator.EQ,
  value1: userId
});
filters.push(first_Filter);
this.getOwnerComponent().getModel().read("/users", {
  filters: la_filters,
  success: function(oData, response) {
    var data = oData.results[0];
    var jobid = data.jobId;
    var filters2 = new Array();
    var second_Filter2 = new sap.ui.model.Filter({
      path: "idJob",
      operator: sap.ui.model.FilterOperator.EQ,
      value1: jobid
    });
    filters2.push(second_Filter2);
    this.getOwnerComponent().getModel().read("/jobs", {
      filters: la_filters2,
      success: function(oData2) { 
        // read odata ,get value and pass it on...
      }
    });
  }
});

1 个答案:

答案 0 :(得分:0)

第二个this中的read不是正确的。

this一样保存对var that = this;的引用(在第一次读取之外),并使用它来使第二个read

that.getOwnerComponent().getModel().read("/jobs", {
  filters: la_filters2,
  success: function(oData2) { 
    // read odata ,get value and pass it on...
  }
});