diff --git a/simple-mind-map/src/core/render/Render.js b/simple-mind-map/src/core/render/Render.js index 184cb8cc..3355b731 100644 --- a/simple-mind-map/src/core/render/Render.js +++ b/simple-mind-map/src/core/render/Render.js @@ -112,20 +112,17 @@ class Render { // 设置布局结构 setLayout() { + const { layout } = this.mindMap.opt this.layout = new ( - layouts[this.mindMap.opt.layout] - ? layouts[this.mindMap.opt.layout] + layouts[layout] + ? layouts[layout] : layouts[CONSTANTS.LAYOUT.LOGICAL_STRUCTURE] - )(this, this.mindMap.opt.layout) + )(this, layout) } // 重新设置思维导图数据 setData(data) { - if (this.hasRichTextPlugin()) { - this.renderTree = data ? this.mindMap.richText.handleSetData(data) : null - } else { - this.renderTree = data - } + this.renderTree = data || null } // 绑定事件 diff --git a/simple-mind-map/src/plugins/RichText.js b/simple-mind-map/src/plugins/RichText.js index 82adc214..ae567a09 100644 --- a/simple-mind-map/src/plugins/RichText.js +++ b/simple-mind-map/src/plugins/RichText.js @@ -81,9 +81,12 @@ class RichText { this.onCompositionStart = this.onCompositionStart.bind(this) this.onCompositionUpdate = this.onCompositionUpdate.bind(this) this.onCompositionEnd = this.onCompositionEnd.bind(this) + this.handleSetData = this.handleSetData.bind(this) window.addEventListener('compositionstart', this.onCompositionStart) window.addEventListener('compositionupdate', this.onCompositionUpdate) window.addEventListener('compositionend', this.onCompositionEnd) + this.mindMap.on('before_update_data', this.handleSetData) + this.mindMap.on('before_set_data', this.handleSetData) } // 解绑事件 @@ -91,6 +94,8 @@ class RichText { window.removeEventListener('compositionstart', this.onCompositionStart) window.removeEventListener('compositionupdate', this.onCompositionUpdate) window.removeEventListener('compositionend', this.onCompositionEnd) + this.mindMap.off('before_update_data', this.handleSetData) + this.mindMap.off('before_set_data', this.handleSetData) } // 插入样式