fix: 卡片渲染后未赋予__index

This commit is contained in:
yanmao 2021-12-20 13:32:15 +08:00
parent 82cb61d7be
commit 43030351d4
2 changed files with 22 additions and 5 deletions

View File

@ -750,7 +750,16 @@ class CardModel implements CardModelInterface {
this.render(center);
}
card.didRender();
updateIndex(card.root);
const cardParent = card.root.parent();
// 如果父节点是根节点则直接获取index
if (cardParent?.isRoot()) {
card.root[0]['__index'] = card.root.index();
} else if (cardParent) {
// 以卡片的父节点为基础去更新index
updateIndex(cardParent);
}
// 可编辑卡片更新内部节点的index
if (card.isEditable) updateIndex(card.root);
}
removeComponent(card: CardInterface): void {
@ -824,7 +833,11 @@ class CardModel implements CardModelInterface {
}
}
range.select(prevBlock, true).shrinkToElementNode().collapse(false);
range
.select(prevBlock, true)
.shrinkToElementNode()
.shrinkToTextNode()
.collapse(false);
}
// 焦点移动到下一个 Block
focusNextBlock(
@ -865,7 +878,11 @@ class CardModel implements CardModelInterface {
}
}
range.select(nextBlock, true).shrinkToElementNode().collapse(true);
range
.select(nextBlock, true)
.shrinkToElementNode()
.shrinkToTextNode()
.collapse(true);
}
}

View File

@ -42,7 +42,7 @@ class Backspace {
range.select(prevBlock, true);
range.collapse(false);
change.range.select(range);
change.range.select(range.shrinkToTextNode());
}
/**
* backspace键
@ -127,7 +127,7 @@ class Backspace {
if (cardRight.length > 0) {
event.preventDefault();
this.focusPrevBlock(card.root);
this.engine.card.remove(card.id);
this.engine.card.remove(card.id, false);
return false;
}
}