2016-09-30 7 views
0

例で私の質問を説明するのに最高のバインディングの異なるODataのパスを結合します。 '最初の'ページでは '/ EmployeeSet(0)'エンティティを使用し、 '2番目'のページではエンティティ '/ CarSet(0)'を使用します。は、単一のビューで

は、これまでのところ私はこの技術を思い付いたが、それは私のために働いていない:

this.byId("first").bindElement("/EmployeeSet(0)"); 
this.byId("second").bindElement("/CarSet(0)"); 

ページごとにバインディングを設定する正しい方法は何ですか? これはまだ1つのモデルで動作することができますが、 'text = "{secondModel> car}"'のようにビュー内の名前付きモデルを参照する必要はありませんか?


更新: WebIDEで自動完全なリストは、「結合」表示されていないが、それは私が必要なものです。できます。あなたのコードがよさそうだ

enter image description here

答えて

0

は、私がどこかに問題があると思います。サーバーがデータを返すかどうかを確認しましたか?あなたは上記のビューから何を見たいと思いますか?

とにかく、ここにはlittle jsbin example私はあなたのためにスケッチしました(下記参照)。 binsElement()は実際にはビュー内の同じbinding = ""です。ここ

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8"> 
     <title>SAPUI5 single file template | nabisoft</title> 
     <script src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js" 
      id="sap-ui-bootstrap" 
      data-sap-ui-theme="sap_bluecrystal" 
      data-sap-ui-libs="sap.m" 
      data-sap-ui-bindingSyntax="complex" 
      data-sap-ui-compatVersion="edge" 
      data-sap-ui-preload="async"></script> 
      <!-- use "sync" or change the code below if you have issues --> 

     <!-- XMLView --> 
     <script id="myXmlView" type="ui5/xmlview"> 
      <mvc:View 
       controllerName="MyController" 
       xmlns="sap.m" 
       xmlns:core="sap.ui.core" 
       xmlns:mvc="sap.ui.core.mvc"> 

       <Panel id="panel1" binding="{/Customers('ALFKI')}"> 
        <Text text="{CompanyName}"/> 
       </Panel> 

       <Panel id="panel2" binding="{/Customers('ANATR')}"> 
        <Text text="{CompanyName}"/> 
       </Panel>     

      </mvc:View> 
     </script> 

     <script> 
      sap.ui.getCore().attachInit(function() { 
       "use strict"; 

       //### Controller ### 
       sap.ui.define([ 
        "sap/ui/core/mvc/Controller", 
        "sap/ui/model/odata/v2/ODataModel" 
       ], function (Controller, ODataModel) { 
        "use strict"; 

        return Controller.extend("MyController", { 
         onInit : function() { 
          this.getView().setModel(
           new ODataModel("https://cors-anywhere.herokuapp.com/services.odata.org/V2/Northwind/Northwind.svc/", { 
            json : true, 
            useBatch : false 
           }) 
          ); 
         } 
        }); 
       }); 

       //### THE APP: place the XMLView somewhere into DOM ### 
       sap.ui.xmlview({ 
        viewContent : jQuery("#myXmlView").html() 
       }).placeAt("content"); 

      }); 
     </script> 

    </head> 

    <body class="sapUiBody"> 
     <div id="content"></div> 
    </body> 
</html> 

は(探検アプリからNavContainer例に基づいて)別のjsbin example using NavContainer & Pagesあります。 これはjsbin example is the same but uses bindElement()です。

+0

あなたの実例Nabiに感謝します。私はsap.m.pageにバインディングを設定しようとしています(私はnavcontainer内の別のページを持っています)が、の "binding ="属性は存在しないようですか?私は "bindingContexts"しか見ることができません。 – Pieter

+0

bindElement()が存在するので、ビューでbinding = ""を使用することもできます。それは同じだ。 – Nabi

+0

まあ、私はWebIDEがこことそこで改善できると思う...とにかく、私は2つの新しいjsbinsを追加しました。 – Nabi

関連する問題