feat: enhance-tree modified

This commit is contained in:
kangwei 2021-01-07 18:07:28 +08:00 committed by wanying.jwy
parent b40892346a
commit 13e7ad0b69
2 changed files with 14 additions and 1 deletions

View File

@ -120,6 +120,7 @@ export class NodeChildren {
*
*/
delete(node: Node, purge = false, useMutator = true): boolean {
node.internalPurgeStart();
if (node.isParental()) {
foreachReverse(node.children, (subNode: Node) => {
subNode.remove(useMutator, purge);
@ -145,7 +146,7 @@ export class NodeChildren {
document.destroyNode(node);
this.emitter.emit('change');
if (useMutator) {
this.reportModified(node, this.owner, { type: 'remove', removeIndex: i, removeNode: node });
this.reportModified(node, this.owner, { type: 'remove', propagated: false, isSubDeleting: this.owner.inPurging, removeIndex: i, removeNode: node });
}
// purge 为 true 时,已在 internalSetParent 中删除了子节点
if (i > -1 && !purge) {

View File

@ -773,6 +773,18 @@ export class Node<Schema extends NodeSchema = NodeSchema> {
// this.document.destroyNode(this);
}
private purging: boolean = false;
internalPurgeStart() {
this.purging = true;
}
/**
*
*/
get inPurging() {
return this.purging;
}
/**
* action
*/