下一个代码:
this.set("path", ["root", "folder", "file"]);
this.focusNode(this.selectedNode.id);
无效
这一个:
this.set("path", ["root", "folder", "file"]);
win.scrollIntoView(this.selectedNode.id);
作品!但仅当树的文件夹(父叶)已经打开时。如果关闭父文件夹,它将无法正常工作。
所以......有人能帮助我吗?
P.S。这是一个非常简单的例子: http://jsfiddle.net/hjnx9/6/
我点击按钮,想要在树中选择一个节点并滚动到它。 首次选择节点时(但滚动不起作用)。在第二次时,将再次选择节点,这次滚动将继续工作。 如何修复???
P.S.S。我认为问题是set(“path”,...)不能立即打开树的文件夹(动画大约需要200毫秒)。那么我可能需要某种回调吗?
答案 0 :(得分:2)
set("paths", ...)
会返回一个Promise,因此,您的问题可以通过以下方式解决:
//select node
_Tree.set("path", ["root", "folder49", "file25_folder49"]).then(
function(path) {
// executes when set("path", ..) is complete
var item = _Tree.model.store.data[2526];
_Tree.onClick(item);
}
);