2016-03-25 3 views
2

マイファイルcontroller.js配列sapui 5のjsonオブジェクトをバインドする方法?

は今、私はそれのためのコードの下にしようとしていますsapui 5を使用して配列にJSONオブジェクトをバインドします。

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 

答えて

2

私はあなたが達成しようとしているかわからないんだけど、あなたのモデルが唯一の配列が含まれているので、あなたのビューで次の操作を行うことができます。

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

(EDITED:getData()一部を忘れた...)

しかし、一般的には、専用モデルにオブジェクトや配列を格納するのではなく、個別のプロパティに格納するモデルを1つ作成する必要があります。その場合は、あなたが行うことができます:

コントローラで:

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

ビューで:

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

+0

回答ありがとうございます。 –

+0

あまりにも速く入力されました。返信を編集しました – Qualiture

+0

エラーがあります:TypeError:sap.ui.getCore(...)。getModel(...)は未定義です。 –

0

JSONModelデータはjavascriptオブジェクト平野でなければなりません。 IEはjavascript配列ではありません。

あなたは前の回答に従ってJSONModelのプロパティとして、あなたの配列を設定したり、オブジェクトの内部、それをラップするためにあなたの最初の配列を変更することができ、次のいずれか

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'); 

}, 

その後、あなたは{fieldArrayにビューをバインドすることができます>/elementArray}

+0

私はモデルがキー値で構成されるべきであると完全に同意します。 JSONModelでも単純な文字列配列を使用してください。その場合、あなたは '{fieldArray> /}'に束縛し、 '{fieldArray>}' _に束縛します(そして、地獄のように見えます;)_ – Qualiture

関連する問題