2015-11-20 7 views
9

Stiamo utilizzando viste JSON in openUI5 nel sapUI5 esplorato demo che usano questo punto di vista XML per la loro lista raggruppatiUI5 XML View vs JSON Vista elenco raggruppato

<mvc:View 
controllerName="sap.m.sample.ListGrouping.List" 
xmlns:l="sap.ui.layout" 
xmlns:mvc="sap.ui.core.mvc" 
xmlns="sap.m"> 
<List 
    items="{ 
     path: '/ProductCollection', 
     sorter: { 
      path: 'SupplierName', 
      descending: false, 
      group: true 
     }, 
     groupHeaderFactory: '.getGroupHeader' 
    }" 
    headerText="Products" > 
    <StandardListItem 
     title="{Name}" 
     description="{ProductId}" 
     icon="{ProductPicUrl}" 
     iconDensityAware="false" 
     iconInset="false" /> 
</List> 
</mvc:View> 

Abbiamo tradotto per questo punto di vista JSON, ma il selezionatore e la fabbrica dell'intestazione viene ignorata. Gli elementi vengono visualizzati come previsto

{ 
    "Type": "sap.ui.core.mvc.JSONView", 
    "controllerName": "company.controller.XY", 
    "content": [ 
     { 
      "Type" : "sap.m.List", 
      "height" : "100%",  
      "items" : { 
       "path" : "/ProductCollection", 
       "sorter" : { 
        "path" : "SupplierName", 
        "descending" : false, 
        "group" : true 
       }, 
       "groupHeaderFactory" : ".getGroupHeader",   
       "template" : { 
        "Type" : "sap.m.StandardListItem", 
        "title" : "{Name}", 
        "description" : "{ProductId}", 
        "icon" : "{ProductPicUrl}", 
        "iconDensityAware" : false, 
        "iconInset" : false 
       } 
      } 
     } 
    ] 
} 

Come trasformare la vista xml in una vista JSON? C'è qualche strumento là fuori che lo fa automaticamente?

+0

nome controller: company.controller.XY - eh? sei consapevole della convenzione qui mi fido? – Bernard

+0

Sono abbastanza sicuro che il controller non sia denominato 'XY'. A parte questo, lo schema dei nomi mi sembra a posto. Utilizziamo 'de.companyname.productname.controller.XY' – Marc

+0

@Bernard im consapevole di questo, ma ho dovuto mascherare la società + controllername – deterministicFail

risposta

8

Ho appena segnalato il problema su github.
Secondo SAP-Developers questo è un recognized JSON-View Bug.

... il JSONView attualmente non risolve correttamente i metodi del controller. Questo è un gap noto in JSONView, che purtroppo non è stato ancora chiuso anche se è stato rilevato già a giugno (JSONViews non è usato molto ...).

L'unica scelta che hai è quello di creare un sap.m.List.items -Binding nel controllore tramite JavaScript o passare la vostra vista di dichiarazione a uno JavaScript- o XML-Vista.