extjs 4 удаляет узел из древовидной панели, давая ошибку в пользовательском перетаскивании
Я настраиваю пользовательскую реализацию перетаскивания с древовидными панелями, где я хочу, чтобы все узлы прикреплялись к узлу, который я создал под корнем. Я пытаюсь перетащить один узел из одной панели дерева в другую определенным образом. Я могу переместить предмет, но у меня возникают проблемы при удалении его с другой стороны.
Вот мой код, это внутри моей панели дерева:
viewConfig:{
plugins:{
ptype:'treeviewdragdrop',
DDgroup:'treeDD'
},
listeners:{
beforedrop: function(node, data, dropRec, dropPosition){
if(dropRec.parentNode.data.text == "Root"){
console.log('dropping on top level');
this.up('panel').getStore().getRootNode().getChildAt(0).insertChild(0, data.records[0].data);
//the below line seems to be causing the error, how should I be removing?
choicesTree.getRootNode().getChildAt(0).removeChild(data.records[0]);
//choicesTree is previously defined
return false;
}
}
Это удаляет элемент из первой панели дерева, но сразу же выдает следующую ошибку:
item is null
fly(item.firstChild).highlight(me.repairHighlightColor, {
1 ответ
Возврат false вызывает проблему в коде. return 0 также не работает, как описано в документации. Код не работает из-за ошибок в версии 4.07 extjs, код работает как положено в версии 4.1
Из документации: Возврат false для этого события означает, что жест перетаскивания был недействительным, и если прокси-сервер перетаскивания вернется к точке, с которой началось перетаскивание. Возврат 0 к этому событию сигнализирует о том, что операция передачи данных не должна выполняться, но что жест действителен и что операция восстановления не должна выполняться. Любое другое возвращаемое значение продолжается с операцией передачи данных.
Вышеупомянутое поведение из документов отличается от того, что происходит