如何用新的编辑器配置处理旧组件(JSON)?
编辑器能在不手动添加新组件的情况下,直接识别新的组件配置吗? 其实不完全是,如果你以一种方式存储组件定义,编辑器会加载该定义。 我唯一能建议的是使用“avoidDefaults”(从v0.15.5起默认为“true”)。这样可以避免存储所有默认组件属性,避免这些情况
阅读下方完整回答 ↓问题
你好,@artf,
我有一个关于葡萄编辑器的问题,文档里找不到,希望你能给出答案。
基础配置:
所有组件的配置都用初始化来设置 'this.editor = grapesjs.init(defaultConfiguration);'
之前保存的json中的组件是通过setComponents()添加的。 'this.editor.setComponents(templateComponents)'
问题所在: 我有一个自定义组件,想从中更新配置。就我而言,我想把可样式性质更新为false。 所以我更改了组件配置,现在当我向画布添加新组件时,它会带有可样式的false属性。那很好。
但其他用 setComponents 设置的组件,仍然保留着“可样式:true”属性。因为json是用不同的配置创建的。
但是,只有当我编辑组件时,画布上的所有组件才会重新添加,并且会覆盖旧组件配置(新json)。(改为“可样式化:虚假”)
我的问题是: 当我们还有很多持久化的旧JSON配置和旧配置时,我们该如何处理新的组件配置?编辑器能在不手动添加新组件到画布的情况下,自动识别新的组件配置吗?
提前感谢大家!
回答(2)
编辑器能在不手动添加新组件的情况下,直接识别新的组件配置吗?
其实不完全是,如果你以一种方式存储组件定义,编辑器会加载该定义。
我唯一能建议的是使用“avoidDefaults”(从v0.15.5起默认为“true”)。这样可以避免存储所有默认组件属性,避免这些情况
谢谢你的回复! 我打算用“avoidDefaults: true”来实现:)
相关问答
通过相似的问题讨论继续研究。
问题 #3654
Editor.setComponents(html)和pageManager.select(pageId)未加载js脚本
嗨,@artf据我所知,allowScripts:1 允许 grapesjs 加载脚本。我第一次加载着陆页时,它运行正常。它能加载所有JavaScript。之后,当我使用 editor.setComponents(html) 或 pageManager.select(pageI...
问题 #1274
远程存储选项没有发送 $_POST JSON 结构
嗨,@artf! 我正在利用最新版本v.0.14.21,在我们的系统中适配你的内容构建器。我已经设置了以下StorageManager的配置: storageManager: { 类型:“远程”, stepsBeforeSave: 1, 自动加载:正确, 自动保存:错误, ur...
问题 #6409
手机上无法拖动移动组件
葡萄JS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v133 可复制演示链接 https://jsfiddle.net/2hjdrb7L/1/ 描述一下那个虫子 如何复现这个漏洞? 用grapesjs v0.22.x和grapesjs...
问题 #3399
将 JSON 转换为服务器端的 HTML
首先,感谢@artf这个了不起的项目。 我有个问题: 在服务器端(Node.js环境)能否轻松地将组件的JSON转换为HTML?如果可能的话,能给我一些建议吗? 客户端方面很简单: 我可以获取components-JSON (“JSON.stringify(editor.get...
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
浏览插件分类
直接跳转到市场上的插件分类页面。