2017-04-03 14 views
-1

oDataサービスをSAPUI5ビューにバインドしたいがバインドしない。この問題を解決するには?SAPUI5を表示するためのoDataサービスのバインド

tes.view.xml

<core:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" 
     controllerName="tes.tes" xmlns:html="http://www.w3.org/1999/xhtml"> 
    <Page title="Title"> 
     <content> 
      <Label text="Hai dunia!"></Label> 

      <List 
       headerText="Products" 
       items="{ 
        path: '/DATA' 
        }" > 
        <StandardListItem 
         title="{NAME}" 
         counter="{DESC}"/> 
      </List> 
     </content> 
    </Page> 
</core:View> 

tes.controller.js

sap.ui.define([ 
     'jquery.sap.global', 
     'sap/m/MessageToast', 
     'sap/ui/core/Fragment', 
     'sap/ui/core/mvc/Controller', 
     'sap/ui/model/json/JSONModel' 
    ], function(jQuery, MessageToast, Fragment, Controller, JSONModel) { 
    "use strict"; 

    var CController = Controller.extend("tes.tes", { 

     onInit : function() { 
      var model = new sap.ui.model.odata.ODataModel("http://192.168.78.23:8000/Tes/WebContent/tes/data.xsodata", false); 
      console.log(model); 
      var model2 = new JSONModel(model); 
      this.getView().setModel(model2); 

     } 

    }); 
    return CController; 

}); 

data.xsodata

service namespace "tes" { 
    "HANATES"."USER" as "DATA"; 
} 

プロジェクト構造:

Project Structure

データ:

JSON Data

データSAPUI5を表示するために結合しません。

ありがとうございました。

ボビー

+0

私は既にパス "/ d/results"または "/ DATA"を使用していますが、ビュー – Albertus

答えて

0

問題は、あなたのモデルである:

  1. var model = new sap.ui.model.odata.ODataModel("http://192.168.78.23:8000/Tes/WebContent/tes/data.xsodata", false); - このステップは右です。 oDataモデルを作成しています。

  2. var model2 = new JSONModel(model); - これが問題です。 JSONModelコンストラクタは、JSONをロードするURLまたはJSオブジェクトをロードするURLを受け入れますが、OData Modelインスタンスを渡しています。このステップでは、oDataModelからデータをフェッチしません。

  3. this.getView().setModel(model2);' - Change this to this.getView()てsetModel(モデル); ` -

NOTE - (あなたのビューで/データ・バインディングを行っているので。)を表示するには、デフォルトのモデルとしてODataModelしてください。 :JSONModelをビューにバインドする場合:

  1. ODataModel.readメソッドを呼び出して、サーバーからデータを取得します。
  2. oDataModel.readのSucessハンドラで、データをJSONモデルにコピーします。
  3. それぞれのJSONモデルをバインドして表示します。

LINK:OdataModelためにhttps://openui5.hana.ondemand.com/#docs/api/symbols/sap.ui.model.odata.ODataModel.html#read

は、あなたがより多くの情報が必要な場合は、私に教えてください方法をお読みください。

+0

ohにバインドしていません。私がこれをコード化する前に、私はjsonを試していません。私は試してみます: var model = new sap.ui.model.odata.ODataModel( "http://192.168.78.23:8000/Tes/WebContent/tes/data。 xsodata "、false); this.getView()。setModel(model); この問題は解決しません。ありがとう – Albertus

+0

:/ DATA/resultsでバインディングビューを試してください。なぜあなたはフィルタパラメータを渡されていないので、結果の配列が作成されたのだろうか。 :s。 –

+0

はまだ "/ DATA/results"のパスにバインドされていません – Albertus