2016-05-27 19 views
0

これは、コントローラinit方法で私のコードです:ローカルJSONファイルとデータ

mycontroller = this 

var data = [{ 
    "No": "456980", 
    "Updates": [{ 
     "Test": "abc" 
    }, { 
     "Test": "bca" 
    }, { 
     "Test": "dbd" 
    }] 
}, { 
    "No": "456980", 
    "Updates": [{ 
     "Test": "abc" 
    }, { 
     "Test": "bca" 
    }, { 
     "Test": "dbd" 
    }] 
}, { 
    "No": "456980", 
    "Updates": [{ 
     "Test": "abc" 
    }, { 
     "Test": "bca" 
    }, { 
     "Test": "dbd" 
    }] 
}] 
var oModel = new sap.ui.model.json.JSONModel(); 
oModel.setData(data); 

//set this model to list control having custom list as aggregation 
mycontroller.List1.setModel(oModel); 

mycontroller.List1.bindAggregation("items", { 
    path: "/", 
    template: mycontroller.List1_template 
}); 

var ListItems = P1Notificationcontroller.list1.getItems(); 
var ListLength = ListItems.length; 

for (var i = 0; i < ListLength; i++) { 
    var control = "status_vbox-list1-" + i; 
    sap.ui.getCore().byId(control).bindAggregation("items", { 
     path: "Updates", 
     template: new sap.m.Text('', { 
      text: '{Update}' 
     }) 
    }); 
} 

ビュー宣言init方法が完全に正常に動作ビューとコントローラにコンテンツ

oController.List1 = new sap.m.List("List1", { 
    headerDesign: sap.m.ListHeaderDesign.Standard 
}); 
oController.List1_template = new sap.m.CustomListItem("McustomlistItem", { 
      content: [ 
       new sap.m.VBox('', { 
        items: [ 
         new sap.m.Text('', { 
          text: "{No}" 
         }) 
         new sap.m.VBox('status_vbox', { 
          items: [] 
         }) 
        ] 
       })); 

上記のコードを作成しますカスタムリストVBoxの項目は、データの更新配列から集計されます。我々はループオブジェクトにできないため、コード

var jsonmodel = new sap.ui.model.json.JSONModel("mockData/local.json"); 
mycontroller.List1.setModel(jsonmodel) 

のこのラインをVBoxのループを使用して、ローカルJSONファイル& に維持同じデータが失敗している

。私は両方のモデルのCONSOLE.LOG ODataのオブジェクトのループが

が起きていないので、一つのモデルの属性は、我々はへのローカルJSONファイル内の同じデータを維持できるか、配列やオブジェクトなどの他として表示され

上記のようにupdates属性をカスタムリスト項目のVBoxにループします。

+0

以下のようにローカルのJSONモデルを埋めるためにjqueryのAJAX呼び出しを呼び出すことにより解決される問題sap.ui.model.json.JSONModel.html#loadData) 'メソッドを' async'を 'false'とした場合 – Rayon

+0

レーヨンで私のコードにこのメソッドを明示的に含めることができますか? – user3349850

+0

提供されたURLを参照してください。 – Rayon

答えて

1

`[loaddataの](https://openui5.hana.ondemand.com/docs/api/symbols/を使用

jQuery.ajax({ 
      url: "mockData/Local.json", 
      dataType: "json", 
      success: function(data, textStatus, jqXHR) {   

      var jsonmodel = new sap.ui.model.json.JSONModel(); 
       jsonmodel.setData(data); 
       sap.ui.getCore().setModel(jsonmodel,'testmodel'); 

      mycontroller.List1.setModel(jsonmodel) 


       } 
関連する問題