diff --git a/components/admin/RichTextEditor.vue b/components/admin/RichTextEditor.vue index 606f4ad..8b426a1 100644 --- a/components/admin/RichTextEditor.vue +++ b/components/admin/RichTextEditor.vue @@ -74,6 +74,14 @@ watch(() => props.modelValue, (val) => { if (val !== current) editor.value.commands.setContent(val || '', false) }) +// editor 实例异步创建,若先于 modelValue 异步加载完成, watch modelValue 时 editor 还是 null 会跳过, 导致内容空白 +watch(editor, (ed) => { + if (!ed) return + if (props.modelValue && ed.getHTML() !== props.modelValue) { + ed.commands.setContent(props.modelValue, false) + } +}, { immediate: true }) + onBeforeUnmount(() => editor.value?.destroy()) function btn(active) { return { 'toolbar-btn': true, active } }