【问题标题】:How to disable V2 OData $batch request by default in UI5?如何在 UI5 中默认禁用 V2 OData $batch 请求?
【发布时间】:2017-02-02 07:04:55
【问题描述】:

我用 SAPUI5 在 Web IDE 中制作了一个 Master-Detail 应用程序。

我将我的应用程序连接到 OData 服务 (V2)。连接参数已保存在manifest.json中。

我想阻止我的 UI5 应用程序使用 $batch 请求。

我知道如何使用以下代码来禁用特定请求的批处理请求:

var oDataModel = this.getModel(); // sap.ui.model.odata.v2.ODataModel
oDataModel.setUseBatch(false);

但问题是我不能在onInit函数中使用它。

我可以在manifest.json 中设置一些参数来禁用批处理请求,即使在程序加载时它也不使用$batch

【问题讨论】:

    标签: odata sapui5


    【解决方案1】:

    您应该能够将参数useBatch 添加到模型的设置中。根据documentation/sap.ui5/models 部分),这些设置将传递给构造函数。

    {
      "sap.ui5": {
        "models": {
          "yourV2ODataModel": {
            "dataSource": "yourDataSource",
            "settings": {
              "useBatch": false
            }
          }
        }
      }
    }
    

    onInit 中组件模型的可用性已在此处多次讨论times。查看应用程序init 进程以了解它们不可用的原因。

    【讨论】:

      【解决方案2】:

      您可以在 onInit 函数中使用它。但是像这样:

      var oDataModel = this.getOwnerComponent().getModel();
      
      oDataModel.setUseBatch(false);
      

      【讨论】:

      • 嗨,设置 manifest.json 中定义的模型的属性不是一个好主意。想象模型被 mockservers 模型或其他模型取代。正确答案已经给出了,就是在manifest.json中设置模型设置
      【解决方案3】:

      转到 Component.js

      关于它的“init”方法:

      this.getModel("yourDesiredModel").setUseBatch(false)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-18
        • 1970-01-01
        • 2018-11-09
        • 1970-01-01
        • 1970-01-01
        • 2016-04-26
        相关资源
        最近更新 更多