Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从xml视图SAPUI5复制列表项_Javascript_Xml_Fragment_Sapui5 - Fatal编程技术网

Javascript 从xml视图SAPUI5复制列表项

Javascript 从xml视图SAPUI5复制列表项,javascript,xml,fragment,sapui5,Javascript,Xml,Fragment,Sapui5,从控制器那个里得到一个简单的问题,我想复制定义为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.

从控制器那个里得到一个简单的问题,我想复制定义为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);
其中,此[id]是实际定义的CustomListItem xml片段:

this.volumes = sap.ui.xmlfragment("fragment.volumes", this);
this.getView().addDependent(this.volumes);
是否可以复制xml模板的副本


控制台中没有错误,只是清空新生成的customListItem

好的,我已经通过定义每次新的this.volumes1、2、3等来复制模板。这取决于列表项的长度首先,我建议查看

我认为你可能想要达到的目标是:

//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()
创建另一项