我有一个文件浏览器树的树模型的自定义实现。该树还应该支持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事件。因此,只需使用适当的值在模型树上调用这些方法,它将起作用。如果您自己实施模型,请确保更改模型数据;)

10-06 00:44