从 xml 视图 SAPUI5 复制列表项
Posted
技术标签:
【中文标题】从 xml 视图 SAPUI5 复制列表项【英文标题】:Copy list item from xml view SAPUI5 【发布时间】:2019-01-22 05:01:27 【问题描述】:有一个简单的问题,来自控制器,我想复制定义为 xml 片段的列表项模板。到目前为止,我已经设法复制模板只复制一次,问题是我不能复制多次
我的代码:
var button = oEvent.getSource();
var id = button.data("id");
var list = button.getParent().getParent();
var newItem = new sap.m.CustomListItem();
newItem.addContent(this[id]);
list.addItem(newItem);
this[id] 是实际定义的 CustomListItem xml 片段:
this.volumes = sap.ui.xmlfragment("fragment.volumes", this);
this.getView().addDependent(this.volumes);
可以复制xml模板吗?
控制台没有错误,只是新生成的customListItem
【问题讨论】:
【参考方案1】:首先,我建议查看the docs for aggregation binding
我认为你可能想要达到的目标是这样的:
//check if the template has already been loaded, otherwise load it
if (!this._oTemplate)
this._oTemplate = sap.ui.xmlfragment("path.to.fragment");
//clone the template to create a new item
var oNewItem = this._oTemplate.clone();
//add the clone to the list
oList.addItem(oNewItem);
当您使用 XML 片段创建项目时,仅存在 1 个项目。因此,如果您尝试将同一项目多次添加到列表中,您将不会看到新项目出现(因为只有其中一项)。使用 clone()
创建另一个项目。
【讨论】:
【参考方案2】:好的,我已经成功复制了模板,每次定义新的 this.volumes1、2、3 等,取决于列表项的长度
【讨论】:
以上是关于从 xml 视图 SAPUI5 复制列表项的主要内容,如果未能解决你的问题,请参考以下文章