将 xml ComboBox 转换为 javascript 视图

Convert xml ComboBox to javascript view

我是 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 ! - 

在 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
    }
  })

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