在ExtJS5中,我有一个启用了拖放功能的TreePanel。当我将一个带有子节点的节点从源树拖到目标树时,只会复制父节点。
如果我在'beforedrop‘侦听器中尝试深度克隆,它将失败,并显示以下错误: Ext.data.Model.constructor():错误的模型构造函数参数2- " Session“不是会话
视图有一个视图控制器,但没有视图模型。
视图中的树定义:
xtype: 'treepanel',
itemId: 'myProjectsTree',
rootVisible: false,
viewConfig: {
plugins: {
ptype: 'treeviewdragdrop',
enableDrag: false,
enableDrop: true
},
listeners: {
beforedrop: 'doDrop',....在控制器中:
doDrop: function(dropNode, dragNode, overModel) {
var node = dragNode.records[0];
var clonedNode = node.copy('111', true);<--- failed here我见过在视图模型场景中定义的会话。复制功能是否需要定义viewmodel会话?有没有办法解决这个问题。ExtJS5中是否存在错误。
任何帮助都是非常感谢的!
发布于 2014-11-21 19:42:30
AFAIK EXT JS中存在与复制树节点(EXTJS-13725)相关的错误。您应该在Ext.data.NodeInterface中修改/覆盖copy方法
// copy: function(newId, deep) {
copy: function(newId, session, deep) {
var me = this,
result = me.callParent(arguments),
len = me.childNodes ? me.childNodes.length : 0,
i;
if (deep) {
for (i = 0; i < len; i++) {
// result.appendChild(me.childNodes[i].copy(undefined, true));
result.appendChild(me.childNodes[i].copy(undefined, session, true));
}
}
return result;
}在原始代码中,基本上没有会话参数,而实际上应该有。
发布于 2016-10-18 12:38:43
或设置copy:true
viewConfig: {
plugins: {
ptype: 'gridviewdragdrop',
enableDrag: true,
enableDrop: false,
ddGroup: 'selDD',
copy: true
},https://stackoverflow.com/questions/26754929
复制相似问题