1

マニフェスト ファイルを使用する前は、oData モデルの構成にカスタム ヘッダーを追加していました。SAPUI5 1.30 以降、Component.js はマニフェスト ファイルを使用しており、ランタイムが Component.js の init() 関数に入るとすぐに、モデルは既に読み込まれており、サービスに対して最初のリクエストが行われています。実行時、およびサービスへの最初のリクエストが行われる前に、カスタム ヘッダーを設定する方法が必要です。

前:

    // The service URL for the oData model
    var oServiceConfig = this.getMetadata().getConfig().serviceConfig;
    var sServiceUrl = oServiceConfig.serviceUrl;

    // the metadata is read to get the location of the i18n language files later
    var mConfig = this.getMetadata().getConfig();
    this._routeMatchedHandler = new sap.m.routing.RouteMatchedHandler(this.getRouter(), this._bRouterCloseDialogs);

    // create oData model
    this._initODataModel(sServiceUrl);

// _initODataModel function

    headers = {custom: 'hello world'};
    var oConfig = {
        metadataUrlParams: {},
        json: true,
        // loadMetadataAsync : true,
        defaultBindingMode: "OneWay",
        defaultCountMode: "Inline",
        useBatch: true,
        headers: headers
    };

    var oModel = new sap.ui.model.odata.ODataModel(sServiceUrl, oConfig);       
    this.setModel(oModel);
4

2 に答える 2

0

sap.ui5/models/myModel/settingsのmanifest.jsonでモデル コンストラクターに渡されるオブジェクトを指定できます。

"sap.app": {
  "dataSources": {
    "myDatasource": {
      "uri": "/sap/hba/r/apf/core/odata/apf.xsodata",
      "type": "OData",
      "settings": {
         "odataVersion": "2.0"
      }
    }
  }
},
"sap.ui5": {
  "models": {
     "myModel": {
        "datasource": "myDatasource",
        "settings": {
          "headers": {
             "headername1":"headervalue1",
             "headername2":"headervalue2",
          }
        }
     }
  }  
}
于 2016-03-30T10:18:18.410 に答える