如何在ui5中为列表设置包含多个项目的模板

问题描述 投票:0回答:2

在我的UI5应用程序中,有一个列表,我想在其中显示多个DisplayListItem。因此,我为要绑定的列表设置了一个模板 oList.bindAggregation("items", "/my_path", oListTemplate); 如果我像这样构建模板: oListTemplate = new sap.m.DisplayListItem(...); 任何事情都有效。 但是现在我需要将几个new sap.m.DisplayListItem(...)oListTempate = [new sap.m.DisplayListItem(...), new sap.m.DisplayListItem(...),..];这样的数组放到一个模板中。如果我这样做,我会因为没有给出模板而得到错误:Error: Missing template or factory function for aggregation items

是否不可能为模板提供多个项目。在sap docu:https://sapui5.hana.ondemand.com/1.34.9/docs/guide/91f057786f4d1014b6dd926db0e91070.html有一条线:

模板不一定是单个控件,如上例所示,但也可以是控件树。

因此,我认为这是可能的,但我不知道该怎么做。 先感谢您

list templates sapui5
2个回答
0
投票

遍历结果并为每个结果添加一个DisplayListItem:

var aItems = [];
oResponse.results.forEach(function(oResult){
  aItems.push(new sap.m.DisplayListItem({
                    label: "oResult.name"
                })
  );
});

将数组添加到列表中:

var oList = new sap.m.List({
    headerText: "Test list",
    items: aItems
});

0
投票

指定模板的正确方法是:

oList.bindAggregation("items", {
path: "/my_path",
template: oListTemplate
});

通过创建单个项目将项目添加到列表可能会导致性能问题。

© www.soinside.com 2019 - 2024. All rights reserved.