如何在SAPUI5中创建逗号分隔的列表?

时间:2018-08-02 08:49:43

标签: xml odata sapui5

我尝试在headerObject中用逗号分隔作者列表。

我具有约束力,并展开了一个作者列表(ManyToMany):

<ObjectHeader responsive="true" fullScreenOptimized="true" title="{database>Title}" intro="{i18n>details_by} {database>AuthorDetails}">

这段代码给我以下结果:

Screenshot of UI

使用{database>AuthorDetails/Name}不会显示任何内容。如何扩展作者?

2 个答案:

答案 0 :(得分:0)

好的,谢谢您的想法。我现在已经解决了。

视图:

 intro="{path: 'database>AuthorDetails', formatter: '.commaSeparator'}

控制器:

        commaSeparator: function(oData) {
        if (oData === null) {
            return "";
        }

        var authorArray = [];

        for (var i in oData) {
            var authorKey = oData[i];
            var authorObject = this.getView().getModel("database").getProperty("/" + authorKey);
            authorArray.push(authorObject.Name);
        }

        var commaSeparatedString = authorArray.join(", ");
        return commaSeparatedString;
    },

答案 1 :(得分:0)

我认为我们可以简化控制器中的功能

commaSeparator: function(oData) {
    if (oData === null) {
        return "";
    }

    var oModel = this.getView().getModel("database");
    return oData.reduce(function(result, authorKey) {
      var obj = oModel.getProperty("/" + authorKey);
      return result === "" ? obj.Name : result + ", " + obj.Name;
    }, "");
},