将xml ComboBox转换为javascript视图

时间:2018-10-31 10:37:38

标签: javascript xml sapui5

我是OpenUI5的新手,我有一个使用XML视图创建的组合框,因此现在我需要在JavaScript视图中创建相同的组合框。我的版本是1.58.2:

我的xml组合框代码如下,并且可以正常工作:

 <ComboBox 
     id="departmentsDropDown"
     selectionChange="handleSelectionChange"
     items="{ path: 'departments>/' }"
     placeholder="{i18n>departmentSelect}" >     
     <core:Item key="{departments>name}" text="{departments>org_unit}" />  
</ComboBox>

我的JavaScript视图代码如下,它给我一个错误:

var comboBox = new sap.m.ComboBox(this.createId("departmentsComboBox"),{            
            items : "{ path: 'departments>/' }",
            selectionChange : oController.handleSelectionChange
});

错误:

Missing template or factory function for aggregation items of Element sap.m.ComboBox#__jsview1--departmentsComboBox ! - 

1 个答案:

答案 0 :(得分:1)

在javascript方面,您需要提供有关如何使用组合框(即IE)模板中的实际行的信息。在XML中提供了它;您为此使用core:Item。在javascript端缺少它。这是添加方式的示例:

new sap.m.ComboBox({
    selectedKey: '{model>/key}',
    showSecondaryValues: true,
    items: {
      path: '/Model',
      template: new sap.ui.core.ListItem({
        key: '{Key}',
        text: '{Key}',
        additionalText: '{Description}'
      })
    },
    change: _ => {
       //change logic
    }
  })

它不完全相同,但是您显示了如何添加模板。您会发现,对于带有列表或表的聚合的任何控件,您将需要相同类型的逻辑。对于更复杂的控件,您也可以使用片段。