我尝试在headerObject
中用逗号分隔作者列表。
我具有约束力,并展开了一个作者列表(ManyToMany):
<ObjectHeader responsive="true" fullScreenOptimized="true" title="{database>Title}" intro="{i18n>details_by} {database>AuthorDetails}">
这段代码给我以下结果:
使用{database>AuthorDetails/Name}
不会显示任何内容。如何扩展作者?
答案 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;
}, "");
},