我有一个文件浏览器树的树模型的自定义实现。该树还应该支持drag n drop,因此我将树的pasteItem方法编写如下:
pasteItem: function(childItem, oldParentItem, newParentItem, bCopy){
var oldParentItemFiles = new Array();
for(var idx in oldParentItem.files) {
if(oldParentItem.files[idx].name != childItem.name) {
oldParentItemFiles.push(oldParentItem.files[idx]);
}
}
newParentItem.files.push(childItem);
childItem.parent = newParentItem;
}
我调试了该函数,据我所知,变量已正确修改。但是,该函数已正确调用并运行且没有错误,并且还显示了拖放对话框,但树未更改。
是否需要像render()方法这样的东西?
最佳答案
我找到了答案:
该树连接到模型的onChildrenChange,onChange和onDelete事件。因此,只需使用适当的值在模型树上调用这些方法,它将起作用。如果您自己实施模型,请确保更改模型数据;)