2017-04-03 85 views
-1

我想將oData服務綁定到SAPUI5視圖但不綁定。如何解決這個問題?綁定oData服務查看SAPUI5

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對象,但是您要傳遞OData模型實例。這一步不會從oDataModel獲取數據。

  3. this.getView().setModel(model2);' - Change this to this.getView()則setModel(模型);` - 讓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

哦。在我編寫代碼之前,我不嘗試使用json ..我嘗試使用: var model = new sap.ui.model.odata.ODataModel(「http://192.168.78.23:8000/Tes/WebContent/tes/data。 xsodata「,false);這個.getView()。setModel(model); 但沒有解決這個問題。謝謝 – Albertus

+0

嘗試綁定視圖:/ DATA/results。我想知道爲什麼結果數組已經創建,因爲您沒有傳遞任何過濾器參數。 :秒。 –

+0

仍然不結合觀看與路徑「/數據/結果」 – Albertus