问题 #2691✓ 已解决提出于 2020年3月31日作者 sathyanarayananaCES8 个反应

在从 Code Editor 保存代码时丢失组件信息

快速解答作者 pouyamiralayi3

@jenter [#1331评论](https://github.com/artf/grapesjs/issues/1331#issuecomment-409537048)和[#2644评论](https://github.com/artf/grapesjs/issues/2644#issuecomment-598666594)是很好的例子。另外可以看看[#2664评论](https://github.com/artf/grapesjs/issues/2664#issuecomment-600533428),这是个需要避免的陷阱! 干杯!

阅读下方完整回答 ↓

问题

我已经在网页构建器中集成了代码编辑选项。使用 'editor.getHtml()' 获取当前 HTML 内容并在代码编辑器中填充在从代码编辑器保存代码时,我使用 'editor.setComponents()' 将编辑内容设置为构建画布。 问题从代码编辑器保存html后,它会丢失所有旧组件相关信息,并作为一个新组件,特征中保留默认值。'data-gjs-type' 变成默认,无法识别自定义组件。 分析与思考 查了一下,好像是,当我们使用 'editor.getHtml()' 时,它会得到没有任何 'data-gjs-*' 属性的最终 html。'editor.setComponents()' 方法似乎覆盖了旧的组件信息。 问题为了保留所有旧组件信息并在编辑编辑HTML后使用,我们该如何做到?如果是通过使用'editor.getComponents()'实现,保存代码编辑器内容后,我们如何存储和重用? ![setcontent](https://user-images.githubusercontent.com/33261697/78021117-4d61ae00-7370-11ea-8d56-2c02daeeaf37.PNG) ![savecontent](https://user-images.githubusercontent.com/33261697/78021134-52...

回答(3)

noogen2020年4月5日

@sathyanarayananaCES 首先,呼应其他人的建议,最好使用“get/setComponents”和“get/setStyle”来保存编辑器的内容。 如果我理解没错,你是想用HTML来做“htmlCodeEditor”,并且用户编辑后能导入回“编辑器”。 看看编辑器导入的演示,它只是调用“setComponents”,并附带原始 HTML。 参考资料 - https://github.com/artf/grapesjs/blob/dev/docs/api/editor.md#examples 和 https://github.com/artf/grapesjs/blob/dev...

pouyamiralayi2020年3月31日

你好@sathyanarayananaCES必须调用“editor.getComponents”和“editor.getStyle”才能获取组件详情;然后你可以通过调用“editor.setComponents”和“editor.setStyle”返回存储状态,使用上述函数调用的结果。 干杯!

相关问答

通过相似的问题讨论继续研究。

问题 #3615

文本组件无法更新,无法从toHTML获得最终结果。

它是文本成分, 如果选择正文,文本会在组件到HTML方法中进行修正保存/应用/存储, 如果只是更新文本,但不保留文本部分,只需点击保存 然后使用“editor.getHTML()”,结果不会更新。 ![Snap77](https://user-images.githubuser...

4 个回答更新于 2021年9月24日

问题 #529

Editor.setComponents(html) 在编辑器中重置为默认的特征值

#522 感谢大家的帮助,我通过 this.model.attributes 解决了问题。但现在我又遇到了另一个问题,editor.setComponents 在 html 编辑器中重置了 value,且 html 还原为默认特征值。 应用流程 1)用户被重定向到 grapes...

2 个回答更新于 2019年9月18日

问题 #2118

把动态方块配置保存成HTML吗?(倒计时,滑行者)

我正在尝试将模板数据保存到数据库中。目前我让它正常工作。它会把“资产”、“组件”、“样式”、“HTML”和“CSS”数据(就像它保存到浏览器的本地存储一样)发布到PHP脚本中。 我发现,“组件”部分(“editor.getComponents()”)包含了包含所有动态元素(如“...

2 个回答更新于 2019年7月8日

问题 #2207

:如果在顶部/左侧有空位,Mode Absolute 无法拖动组件

给定以下代码示例...... “'' HTML <div style=“height: 100px;”> 顶部或左侧有空隙 </div> <div id=“gjs”> <p style=“填充:25px”> 赫斯德洛世界!!</p> </div> 导致无法通过面板上的拖曳图标拖...

3 个回答更新于 2020年1月2日

与此问题匹配的付费插件

根据问题关键词和标签相关性精选,助你更快交付。

查看全部插件

正在加载付费插件推荐……

免费方案

在以下平台查看开源 GrapesJS 插件: GitHub 或在我们的免费目录中快速搜索。

浏览免费插件 →
高级方案

高级插件提供支持、定期更新和生产就绪的功能——为你节省数天的集成工作。

浏览高级插件 →

浏览插件分类

直接跳转到市场上的插件分类页面。