【问题标题】:Copy list item from xml view SAPUI5从 xml 视图 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

【问题讨论】:

    标签: javascript xml fragment sapui5


    【解决方案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 等,取决于列表项的长度

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多