2016-09-30 3 views
0

예를 들어 내 질문을 설명 할 베스트 바인딩에 대해 서로 다른 하나로, OData 경로를 결합합니다. '첫 번째'페이지의 경우 엔티티 '/ EmployeeSet (0)'을 사용하고 '두 번째'페이지의 경우 엔 엔티티 '/ CarSet (0)'을 사용하고 싶습니다.단일 뷰에서

은 지금까지 나는이 기술을 함께했다하지만 나를 위해 작동하지 않습니다 :

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

각 페이지에 대한 바인딩을 설정하는 올바른 방법은 무엇입니까? 이 기능은 단일 모델에서 계속 작동 할 수 있으며 'text = "{secondModel> car}"'와 같이보기에서 명명 된 모델을 참조하지 않아도됩니까?


업데이트 : WebIDE의 자동 완성 목록은 "바인딩"표시되지 않습니다,하지만 그건 내가 필요한거야. 그것은 작동합니다. 귀하의 코드가 잘 보이는

enter image description here

답변

0

, 나는 다른 곳에서 문제가있는 것 같아요. 서버에서 데이터를 반환하는지 확인 했습니까? 위에서 열거 한 견해에서 무엇을 기대합니까?

어쨌든, 여기에 little jsbin example입니다. 제가 방금 스케치했습니다 (아래 참조). binsElement()는 뷰에서 실제로 동일한 바인딩 = ""입니다. 여기

<!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에서 다른 페이지가 있음), "바인딩 ="속성이 인 것처럼 보이지 않습니다? 나는 "bindingContexts"만 볼 수 있습니다. – Pieter

+0

bindElement()가 존재하므로 뷰에서 binding = ""을 사용할 수도 있습니다. 그것은 동일합니다. – Nabi

+0

음, WebIDE가 여기저기서 개선 될 수 있다고 생각합니다. ;-) 어쨌든, 2 개의 새로운 jsbins을 추가했습니다. – Nabi