2017-01-07 2 views
0

Ich habe ein Objekt, das ManagedObjectKönnen wir das ManagedObject an View binden?

durch Verlängerung vorbereitet, und ich habe diese in die JSONModel der Ansicht im Regler als

var model = new JSONModel({ 
    data : someOne.getManagedObjects() 
}); 

Wie zu binden diese anzuzeigen hinzugefügt? <List id="mainLayerList" selectionChange="onSelectionChange" mode = "MultiSelect" items="{/data}">

2:: Ich habe diese

1 versucht

<List id="mainLayerList" 
        selectionChange="onSelectionChange" 
        mode = "MultiSelect" 
        items="{ 
        path: '/data', 
        factory: '.dataListItemFactory' 
       }"> 

die Daten nicht zu sehen bekommen.

Können wir das ManagedObject an die Ansicht binden?

+0

Können Sie fügen Sie ihn, wie die Daten wie in Ihrem Modell aussieht? –

+0

Ich versuche mit Mitarbeiterdaten – chiranjeevigk

+0

Ich wollte sehen, was dies zurückgibt: someOne.getManagedObjects(). Bitte machen Sie eine console.log() Ihres Modells. Haben Sie das Modell auf Ihre Sicht (oder auf Ihre Komponente) eingestellt, z. : this.getView(). setModel (Modell)? –

Antwort

0

Sie können an jedes Javascript-Objekt binden. Sie können jedoch nur Attribute und Eigenschaften für die gebundenen Objekte verwenden. Sie können also keine Funktionen wie getName() aufrufen.

Was tun ManagedObjects mit den Eigenschaften, die Sie in den Metadaten deklariert haben? Es erstellt getXxx() und setXxx() Methoden und speichert die Daten xxx irgendwo in einem privaten Objekt. Deshalb können Sie nicht an {xxx} binden, obwohl Sie auf dem ManagedObject eine xxx Eigenschaft deklariert haben.

Als Abhilfe können Sie getter properties und setter properties auf Ihrem Managed schaffen könnte für alle Attribute, die Sie binden möchten:

get xxx() { return this.getXxx();} 
set xxx(value) { this.setXxx(value);} 
Verwandte Themen