Skip to Content
0
Former Member
Jul 20, 2016 at 06:22 AM

Could binding hierarchical aggregations?

43 Views

Hi all,

Now I want to bind the model to the first level aggregations —table and the second level aggregation — multiComboBox. But it seems not to work. Whether the binding method is wrong or any other way to binding? Thanks for any suggestion.

sap.ui.define([
      "sap/m/HBox",
      "sap/m/CheckBox",
      "sap/m/MultiComboBox",
      "sap/ui/model/json/JSONModel"
    ], function(HBox, CheckBox, MultiComboBox, JSONModel) {
      "use strict";
      
      var aData = {
        pms:
        [{label:'1',chekced:true,isOthers:true,others:
          [{label:'11'},{label:'12'}]},
        {label:'2',chekced:true,isOthers:true,others:
         [{label:'21'},{label:'22'}]},
        {label:'3',chekced:true,isOthers:true,others:
         [{label:'31'},{label:'32'}]},
        {label:'4',chekced:true,isOthers:true,others:
         [{label:'41'},{label:'42'}]},
        {label:'5',chekced:true,isOthers:true,others:
         [{label:'51'},{label:'52'}]}]
      };
      var oModel = new JSONModel();
      oModel.setData(aData);

      
      var oComboBox = new MultiComboBox({
        width: "200px",
        enabled: true,
        items:{
          path:'/others',
          templateShareable: false,
          template: new sap.ui.core.Item({
            text:"{label}"
          })
        }
      });
      
      var oCheckBox = new CheckBox({
        selected: "{/checked}",
        text:'{label}'
      });
      var template = new sap.m.ColumnListItem({
        cells:[
          oComboBox,
          oCheckBox
        ]
      });
      var table = new sap.m.Table({
        columns:[new sap.m.Column({header: new sap.m.Text({text:'col1'})}),
                new sap.m.Column({header: new sap.m.Text({text:'col1'})})]
      }).bindAggregation('items','/pms',template);
      table.setModel(oModel);
      var oHBox = new HBox({
        items: [table]
      });
      oHBox.placeAt("content");
    });

Thanks,

Mengchi