如何在删除节点后使用 fancytree 小部件 (Yii2) 重新加载整个树
How to reload a the entire tree using fancytree widget (Yii2) after dropping a node
我希望我的树在我删除一个节点后重新加载。问题是我似乎无法弄清楚如何调用树上的函数。
我试过使用 tree,容器的 id,fancytree,随便你怎么说..
这是我加载 fancytree 小部件的来源:
echo FancytreeWidget::widget([
'options' =>[
'source' => $chapters,
'extensions' => ['dnd'],
'icons' => false,
'activeVisible' => true,
'dnd' => [
'preventVoidMoves' => true,
'preventRecursiveMoves' => true,
'autoExpandMS' => 400,
'dragStart' => new JsExpression('function(node, data) {
startNode = node;
return true;
}'),
'dragEnter' => new JsExpression('function(node, data) {
return true;
}'),
'dragDrop' => new JsExpression('function(node, data) {
dropNode = node;
data.otherNode.moveTo(node, data.hitMode);
updatePosition();
node.render(force=true);
}'),
],
],
]);
经过更多尝试后,我得出了以下解决方案:
我正在查看删除节点后提供给函数的数据参数。在那里我找到了可以调用 reload() 的树。
'dragDrop' => new JsExpression('function(node, data) {
data.otherNode.moveTo(node, data.hitMode);
dropNode = node;
updatePosition();
data.tree.reload();
}'),
我希望我的树在我删除一个节点后重新加载。问题是我似乎无法弄清楚如何调用树上的函数。
我试过使用 tree,容器的 id,fancytree,随便你怎么说.. 这是我加载 fancytree 小部件的来源:
echo FancytreeWidget::widget([
'options' =>[
'source' => $chapters,
'extensions' => ['dnd'],
'icons' => false,
'activeVisible' => true,
'dnd' => [
'preventVoidMoves' => true,
'preventRecursiveMoves' => true,
'autoExpandMS' => 400,
'dragStart' => new JsExpression('function(node, data) {
startNode = node;
return true;
}'),
'dragEnter' => new JsExpression('function(node, data) {
return true;
}'),
'dragDrop' => new JsExpression('function(node, data) {
dropNode = node;
data.otherNode.moveTo(node, data.hitMode);
updatePosition();
node.render(force=true);
}'),
],
],
]);
经过更多尝试后,我得出了以下解决方案:
我正在查看删除节点后提供给函数的数据参数。在那里我找到了可以调用 reload() 的树。
'dragDrop' => new JsExpression('function(node, data) {
data.otherNode.moveTo(node, data.hitMode);
dropNode = node;
updatePosition();
data.tree.reload();
}'),