我想编写自己的ColumnListItem控件来添加拖放功能。

到目前为止,我已经做到了:

$.sap.require('sap.m.ColumnListItem');
$.sap.declare('my.DraggableDelegate');
$.sap.declare('my.ColumnListItem');
my.DraggableDelegate = function(oControl) {
        this.oControl = oControl;
    };
    my.DraggableDelegate.prototype = {
        onAfterRendering: function() {
            this.oControl.$().draggable({
                cancel: false
        });
    }
};
sap.m.ColumnListItem.extend("my.ColumnListItem", {
    renderer : {}, // actually I would rather like to get the ColumnListItem renderer but I don't know how ...
    init: function() {
        this.oDraggable = new my.DraggableDelegate(this);
        this.addDelegate(this.oDraggable);
    }
    // something is still missing here I guess
});


开发者控制台仅返回一个错误:


  未捕获的TypeError:无法读取未定义的属性'forEach'


有谁知道如何正确扩展sap.m.ColumnListItem控件?

最佳答案

感谢hirse,我发现了缺少的行:

sap.m.ColumnListItem.extend("my.ColumnListItem", {
    renderer : {},
    init: function() {
        /*******/sap.m.ColumnListItem.prototype.init.apply(this); /******/
        this.oDraggable = new my.DraggableDelegate(this);
        this.addDelegate(this.oDraggable);
    }
});

09-25 17:12
查看更多