2016-03-25 4 views
2

Meine Datei controller.js,Wie bindet man Json-Objekt in Array Sapui 5?

will nun JSON-Objekt in Array sapui 5. Ich versuche unter Code für sie binden.

onInit: function() { 
     var elementArray=['ID','Name','Description','ReleaseDate','DiscontinuedDate','Rating','Price']; 
     var oModel = new sap.ui.model.json.JSONModel(elementArray); 
     sap.ui.getCore().setModel(oModel,'fieldArray'); 

//  var oModel = new sap.ui.model.json.JSONModel('./smartappall/door.josn'); 
//  sap.ui.getCore().setModel(oModel,'approcords'); 
    }, 

view.js

var elementArray= bind fieldArray json model here 

Antwort

2

Ich bin nicht sicher, was Sie versuchen zu erreichen, aber da nur Ihr Modell das Array enthält, in der Ansicht können Sie folgendes tun:

var elementArray = sap.ui.getCore().getModel("fieldArray").getData();

(EDITED: Passwort getData() Teil ...)

Im Allgemeinen speichern Sie Objekte oder Arrays jedoch nicht in einem dedizierten Modell, sondern in einem Modell, in dem Sie sie in separaten Eigenschaften speichern. In diesem Fall können Sie tun:

In Controller:

sap.ui.getCore().getModel("fieldArray").setProperty("/pathToYourArray", elementArray");

In Ansicht:

var elementArray = sap.ui.getCore().getModel("fieldArray").getProperty("/pathToYourArray");

+0

Danke für die Antwort, aber nicht @qualiture .... !! –

+0

Whoops, zu schnell getippt habe ich meine Antwort bearbeitet – Qualiture

+0

Ich habe einen Fehler: TypeError: sap.ui.getCore (...). GetModel (...) ist nicht definiert. –

0

Die JSONModel Daten muss eine Ebene sein Objekt JavaScript. IE kein Javascript-Array.

können Sie entweder die vorherige Antwort folgen und Ihr Array als eine Eigenschaft des JSONModel gesetzt, oder Ihre erste Array ändern sie innerhalb eines Objekts zu wickeln:

onInit: function() { 
    var data = { elementArray: [ 
     'ID', 
     'Name', 
     'Description', 
     'ReleaseDate', 
     'DiscontinuedDate', 
     'Rating', 
     'Price' 
    ]}; 
    var oModel = new sap.ui.model.json.JSONModel(data); 
    sap.ui.getCore().setModel(oModel,'fieldArray'); 

}, 

Dann Sie die Ansicht auf {Feldarray binden kann >/elementArray}

+0

Während ich völlig einverstanden bin, sollte ein Modell aus Schlüsselwerten bestehen, könnten Sie perfekt ein einfaches Array von Strings in einem JSONModel verwenden; In diesem Fall binden Sie an {fieldArray> /} 'und die Aggregation an' {fieldArray>} '_ (und ja, es sieht hässlich aus;)) _ – Qualiture

Verwandte Themen