组件更改后刷新DOM树的功能
我已经解决了我的问题。 关键代码是“rte:disable”事件,当富文本编辑器(rte)关闭时触发。 还有一点很重要,它被编辑的内容不在组件模型中,只在其视图里,所以你必须用这些内容刷新模型。 相关代码如下: 'editor.on('rte:disable', (componentView) => { const model = componentView.model; const innerHTML = componentView.$el[0].innerHTML; const contentModel = model.get('content'); if (contentModel !== innerHTML) { mode...
阅读下方完整回答 ↓问题
你好。 我正在用这款神奇的软件开发一个网站。现在,我正在定制编辑器,发现了一个无法继续的任务。 我用的是ckeditor插件,效果正常。在 ckeditor 工具栏里,我有选项在文本内嵌插入图片。它运行得很好,但问题是我希望 GrapesJS 能像往常一样识别这张图片作为组件(我在 GrapesJS 里也有图像组件和块块),比如文本版本完成后。 其理念是在版本(由 ckeditor 插入的图片)完成后(如果可能的话)刷新 de component DOM。 我查过 API,但没找到任何能刷新组件 DOM 的函数,让 GrapesJS 知道图像组件。 最后一点,如果我把内容保存到数据库并重新加载,GrapesJS 会加载整个 DOM,而图片就是一个 GrapesJS 组件。 有没有函数可以逐个刷新组件树? 如果我在ckeditor上插入段落,在GrapesJS上把段落作为组件,也会出现同样的问题。在数据库保存并重新加载后,段落会被识别为组件。
提前感谢大家。
回答(2)
我已经解决了我的问题。 关键代码是“rte:disable”事件,当富文本编辑器(rte)关闭时触发。 还有一点很重要,它被编辑的内容不在组件模型中,只在其视图里,所以你必须用这些内容刷新模型。 相关代码如下: 'editor.on('rte:disable', (componentView) => { const model = componentView.model; const innerHTML = componentView.$el[0].innerHTML; const contentModel = model.get('content'); if (contentModel !...
@qtarant看看[#2537评论](https://github.com/artf/grapesjs/issues/2537#issuecomment-580167660) 干杯!
相关问答
通过相似的问题讨论继续研究。
问题 #2998
在[寻求帮助]中插入HTML+CSS内联
我在 grapesjs 里内置了 nicy ckeditor 4 编辑器,组件如下: 葡萄:0.15.8 Grapesjs-preset-newsletter: 0.2.20 ckeditor.js:4 Grapesjs-plugin-CKeditor - 0.0.9 我的项目...
问题 #6706
TypeError:e.getRoot 不是函数(样式管理器中的竞态条件)
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 所有浏览器(Chrome、Safari、Firefox、Edge) 可复制演示链接 https://jsfiddle.net/saeedhbi/powxyjdq/3/ 描述一下那个虫子 如...
问题 #2705
为图像添加图像尺寸
当我给页面添加图片属性时,我注意到在 组件内部,图片本身有属性。 当我把图片调入资产管理器时,我的操作如下: 然而,图像添加到画布时,高度和宽度数据是无法显示的。我尝试通过以下方法来获取尺寸: 'component.views[0].el.height' 而且我尝试添加它到对象...
问题 #4735
ResetId类型不匹配
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 无 可复制演示链接 无 描述一下那个虫子 如何复现这个漏洞?.去 https://github.com/artf/grapesjs/blob/dev/src/dom_components/mode...
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
浏览插件分类
直接跳转到市场上的插件分类页面。